salut,
je post car je n'arrive pas à placer mes composants comme je le souhaite, j'utilise le SpringLayout. Vous trouverez en piece jointe une image de ce que je dois réaliser.
en bref, j'ai en premier lieu, un JTabbedPane composé de 4 onglets ( chambres, reservation, ect..)
Dans une class Fenetre heritant de JFrame
donc là, j'ajoute mes panels dans chacun des onglets
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 public Fenetre() { getTabbedPane(); this.getContentPane().add(jtp); this.setVisible(true); this.setSize(800, 600); } public void getTabbedPane() { //instanciation des onglets du tabbedpane pnlCh=new PnlChambre(); pnlCl=new PnlClient(); pnlCat=new PnlCategorie(); pnlReserv=new PnlReservation(); //ajout des panels et de titre aux onglets jtp=new JTabbedPane(); jtp.addTab("Chambre", pnlCh); jtp.addTab("Client", pnlCl); jtp.addTab("Categorie", pnlCat); jtp.addTab("Reservation", pnlReserv); }
Ensuite venons-en au placement des composants dans chaque panel!!
Comme le placement des composants est le même dans chaque onglet et que c'est juste le contenu qui change, j'utilise une classe AbstractPanel dans la quelle , je vais creer ce qui ne change pas et dans laquelle je vais definir l'architecture et l'emplacement des composants.
Pour ce qui est des classes PanelChambre, PanelClient, elles serviront simplement à redefinir le contenu.
Comme vous pouvez le voir sur l'image, il ya 2 parties gauche et droite:
a Gauche:
2 JButtons et une Jlist en dessous
aDroite:
un JPanel
C'est tout!
Donc venons en à la classe abstract panel héritant de JPanel là où je définis la place des composants.
PS: je ne met pas le contenu des methodes panelDroite() et listeDeGauche(), ca n'a pas d'utilité!!
je n'ai pas mis tous les layout.putConstraint pour chacun des composant car de toute façon mon probleme est que mon springLayout est sans effet sur le placemment, je ne comprends pas, quelqun a une idée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 public abstract class AbstractPanel extends JPanel { public AbstractPanel() { SpringLayout sp=new SpringLayout(); setLayout(sp); add(getJbPlus(),new GridLayout()); add(getJbMoins(),new GridLayout()); listeDeGauche(); PanelDroite(); layout.putConstraint(SpringLayout.WEST, getJbPlus(), 5, SpringLayout.WEST, this); layout.putConstraint(SpringLayout.NORTH, getJbPlus(), 5, SpringLayout.NORTH, this); } public JScrollPane listeDeGauche() { return listScrollPane; } public JButton getJbPlus() { jbPlus=new JButton("+"); jbPlus.setBackground(Color.gray); return jbPlus; } public JButton getJbMoins() { jbMoins=new JButton("-"); jbMoins.setBackground(Color.gray); return jbMoins; } public JPanel panelDroite() { return jPanelDroite; } }
Si on récapitule j'ai une classe qui hérite de JFrame dans laquelle j'ajoute un JTabbedPane, dans lequel, j'ajoute pour chaque onglet un panel!
Ce panel étant par exemple PanelChambre et héritant d'une classe AbstractPanel , elle-même héritant de JPanel.
pfiou
Merci par avance pour la patience de ce qui auront le courage de me lire!!
PS: j'ai essayé avec d'autre layout et ca ne change rien non plus.
Partager