GridBagLayout: comment faire pour remplir tous les espaces vides
J'ai une JFrame contient des JPanels à l'aide d'un gridBagLayout (3 lignes, colonnes). C'est mon code:
Container main_container = getContentPane();
GridBagLayout layout = new GridBagLayout();
main_container.setLayout(layout);
GridBagConstraints c = new GridBagConstraints();
StatoMagazzini jpanel_stato_magazzini = new StatoMagazzini();
c.gridx = 1;
c.gridy = 2;
c.fill = GridBagConstraints.BOTH;
layout.setConstraints(jpanel_stato_magazzini, c);
AcquistoLotto jpanel_acquisto = new AcquistoLotto(i, jpanel_stato_magazzini);
c.gridx = 1;
c.gridy=1;
c.fill = GridBagConstraints.HORIZONTAL;
c.anchor = GridBagConstraints.FIRST_LINE_START;
layout.setConstraints(jpanel_acquisto, c);
ButtonPanel jpanel_button_panel = new ButtonPanel(i);
c.gridx=1;
c.gridy=3;
c.anchor = GridBagConstraints.CENTER;
layout.setConstraints(jpanel_button_panel, c);
main_container.add(jpanel_acquisto);
main_container.add(jpanel_stato_magazzini);
main_container.add(jpanel_button_panel);
pack();
et voilà le résultat (un laid résultat): https://docs.google.com/file/d/0Bxi2arJ2Dv9xbEo0Smd5QUN4UGc/edit?usp=sharing
je voudrais éliminer les espaces vides sur le dessus et étendre la deuxième composant (c'est un défilement JTable). Comment je dois modifier le code?
OriginalL'auteur giozh | 2013-07-20
Vous devez vous connecter pour publier un commentaire.
vous pouvez définir la mise en page du conteneur à BorderLayout (ou quelque chose d'équivalent) et de créer un supplément de Composite avec le GridBagLayout et l'ajouter au conteneur
en raison de Borderlayout, le Composite va prendre autant d'espace que possible
OriginalL'auteur Joris W
Lorsqu'un GridBagLayout a plus d'espace que nécessaire, il distribue de l'espace supplémentaire à l'aide de la
weightx
etweighty
propriétés de chaque cellule. Si aucune cellule n'est pas nulle poids de la propriété, l'espace n'est pas affecté à une cellule, et, au lieu de toutes les cellules sont centrées, et de la taille de leur préféré largeur/hauteur.Si vous ne
c.weighty = 1
pour les contraintes utilisées par le composant contenant la JTable, ce composant sera attribué tous les supplémentaires de l'espace vertical. Vous pouvez également fairec.weightx = 1
de sorte que le tableau va remplir tout l'espace horizontal.OriginalL'auteur VGR