CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[JAVA] Problème de scrollbar avec des JLabels

HerosDeGuerre
HerosDeGuerre
Niveau 1
31 janvier 2016 à 18:36:28

Bonjour tout le monde;

je vous remercie d'avance pour vos réponses à ma problématique.

J'ai un programme en java de gestion de stock avec une interface graphique (swing). Quand je cherche un produit dans le stock, une nouvelle fenêtre s'ouvre avec x nombres de JLabels (1 label pour chaque produit dans le stock).
Mais voilà le problème, s'il y a plus d'une dizaine de label, alors les labels "sortent" de la fenêtre et donc certain ne s'affichent pas dans la fenêtre. Il faut donc que j'agrandisse manuellement ma fenêtre, mais au bout d'un moment ce n'est plus possible, a cause de la taille limite de l'écran du PC (voir les images ci-dessous).

Image quand le nombre de labels est faible, donc ils sont tous affichés
https://image.noelshack.com/fichiers/2016/04/1454261288-capture1.png

Image quand le nombre de labels est élevé, donc certains ne sont pas affichés dans la fenêtre
https://image.noelshack.com/fichiers/2016/04/1454261431-capture2.png

Donc j'ai recherché comment faire un scrollbar en java, mais je n'y arrive pas du tout. De plus, tous les exemples que j'ai cherchés de scrollbar sur internet se font sur du JTextField...
Si vous pouviez donc m'expliquer comment faire un scrollbar vertical (si c'est possible) pour pouvoir afficher tous mes labels dans la fenêtre.

De plus, si vous avez une technique pour bien positionner mes labels les uns en dessous des autres, car je joue sur la largeur de la fenêtre pour qu'ils ne se collent pas les uns à coté des autres.

Merci beaucoup pour le temps que vous consacrerez à mon problème, et bonne soirée :)

TintinMage
TintinMage
Niveau 10
31 janvier 2016 à 18:50:55

Utilise un JScrollPane
https://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html

HerosDeGuerre
HerosDeGuerre
Niveau 1
31 janvier 2016 à 20:58:14

Merci beaucoup pour la réponse, mais je ne comprends pas comment fonctionne le JScrollPane() avec le JViewPort()...

Si vous pouviez me donner un exemple, merci :) .

TintinMage
TintinMage
Niveau 10
31 janvier 2016 à 21:21:26

Poste ton code

HerosDeGuerre
HerosDeGuerre
Niveau 1
31 janvier 2016 à 21:44:12

Je poste que le constructeur, car je pense que c'est ici (sauf si je me trompe) qu'il faut mettre le JScrollPane. De plus si je poste toute ma classe, alors le poste va être vraiment long.

La méthode " rechercheDansLaTableSQL(win) " permet comme dit de rechercher la nourriture qui était stockée dans un serveur SQL.
L'argument win dans la méthode permet de récupérer le nom du produit qui a été mis dans un JTextField dans une autre fenêtre.

Si vous voulez toute ma classe, dites-le-moi, mais ça va vraiment être un long code et donc sûrement incompréhensible.


import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;



public class WindowsDisplayStock extends JFrame {

	JPanel pan = new JPanel();
	private List<JLabel> myLabels = new ArrayList<JLabel>();
	JLabel labelQuiNeVaPAsEtreSupprime = new JLabel("Cliquez sur le produit que vous voulez supprimer");
	JLabel labelTotal = new JLabel("total");


	public WindowsDisplayStock(Windows win) throws ClassNotFoundException, SQLException, IOException{

		this.setTitle("Voici le stock");
		this.setSize(500,300);
		this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		this.setLocationRelativeTo(null);
		this.setResizable(true);

		rechercheDansLaTableSQL(win);

		this.setContentPane(pan);
		this.setVisible(true);
	}


public void rechercheDansLaTableSQL(Windows win) throws ClassNotFoundException, SQLException, IOException{

        //Méthode pour la recherche

        }

}
Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment