2 pièce(s) jointe(s)
Composant qui occupent toute la taille du parent
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 :
Pièce jointe 595371
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 :
Pièce jointe 595372
Ca ressemble pas vraiment à mon idéee :mrgreen::mrgreen::lol:
Une idée ??
Code:
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);
}
} |
Je sens que c'est une méga connerie que je vois pas !
Merci à toute aide (si y a des conseils de bonnes pratique au passage, je prend !)