Bonjour à tous
Je suis en train d'essayer d'apprendre un peu à utiliser SWING pour faire des interfaces graphiques et j'ai un petit souci.
J'ai regardé un peu la gestion de placement sur un site nommé Koors.
Jai donc réussi à me faire des gestions sympas avec des BoxLayout, des Flowlayout, et des borderlayout...
Mais, la, en me définisant un JPanel perso (pour l'intégrer dans un cardLayout à terme) , et je galère avec la taille de mes composants.
l'idée est d'obtenir un truc qui ressemble à ca :
Ma classe définit donc :
un JPANEL en boxlayout qui contient :
=> un composant LABEL
=> un JPANEL""insidePanel"" lui meme en GRIDLAYOUT(2*3) contenant
=>=> 3 composants Labels
=>=> 3 composants TextField
J'ai 2 problemes qui sont doute 2 fois le meme :
- mon "insidePanel" (et son gridLayout) occupe toute la place disponible dans son container
- mes 6 composants occupent chacun la totalité de la place
j'ai eu beau utiliser des setBounds, setSize, rien n'y fait, j'obitens ca :
Ca ressemble pas vraiment à mon idéee
Une idée ??
Je sens que c'est une méga connerie que je vois pas !
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 public class JPanelTeam extends JPanel { DAO_Utils myDAO=new DAO_Utils(); static BoxLayout bxl; GridLayout grid=new GridLayout(2,3); // static JLabel teamNameLabel; static JLabel longNameLabel,shortNameLabel,soldeLabel; static JTextField longNameText, shortNameText, soldeText; public JPanelTeam() { this.setBorder(new LineBorder(new Color(0, 0, 0))); bxl = new BoxLayout(this, BoxLayout.Y_AXIS); this.setLayout(bxl); teamNameLabel=new JLabel(); teamNameLabel.setAlignmentX(Component.CENTER_ALIGNMENT); teamNameLabel.setHorizontalAlignment(SwingConstants.CENTER); teamNameLabel.setText("------------------MA TEAM--------------------"); teamNameLabel.setSize(400,200); teamNameLabel.setVisible(true); this.add(teamNameLabel); JPanel insidePanel=new JPanel(); //insidePanel.setBounds(0,0,400,200); insidePanel.setLayout(grid); insidePanel.setBackground(Color.LIGHT_GRAY); longNameLabel=new JLabel(); longNameLabel.setText("TEAM NAME"); longNameLabel.setVisible(true); insidePanel.add(longNameLabel); shortNameLabel=new JLabel(); shortNameLabel.setText("SHORT NAME"); shortNameLabel.setVisible(true); insidePanel.add(shortNameLabel); soldeLabel=new JLabel(); soldeLabel.setText("BALANCE"); soldeLabel.setVisible(true); insidePanel.add(soldeLabel); longNameText=new JTextField(); longNameText.setText("le NOM LONG"); longNameText.setVisible(true); insidePanel.add(longNameText); shortNameText=new JTextField(); shortNameText.setText("LE NOM COURT"); shortNameText.setVisible(true); insidePanel.add(shortNameText); soldeText=new JTextField(); soldeText.setText("00000000000.0000000000"); soldeText.setVisible(true); insidePanel.add(soldeText); this.add(insidePanel); } }
Merci à toute aide (si y a des conseils de bonnes pratique au passage, je prend !)
Partager