J'apprends à propos de JPanel et GridLayout, cet extrait de code produira un simple JPanel à 6 boutons
package testing;
import Java.io.*;
import Java.util.*;
import Java.security.*;
import javax.xml.bind.DatatypeConverter;
import Java.lang.*;
import Java.awt.*;
import javax.swing.*;
public class Testing
{
public static class GridPanel extends JPanel
{
public GridPanel()
{
setLayout(new GridLayout(2,3));
setBackground(Color.GREEN);
this.setPreferredSize(new Dimension(500,500));
JButton b1 = new JButton ("Button 1");
JButton b2 = new JButton ("Button 2");
JButton b3 = new JButton ("Button 3");
JButton b4 = new JButton ("Button 4");
JButton b5 = new JButton ("Button 5");
JButton b6 = new JButton ("Button 6");
add(b1);
add(b2);
add(b3);
add(b4);
add(b5);
add(b6);
}
}
public static void main(String[] args)
{
GridPanel gp = new GridPanel();
JFrame jf = new JFrame();
jf.add(gp);
jf.pack(); //code wouldnt work if i comment out this line
jf.setVisible(true);
}
}
Je me demande pourquoi mon code ne fonctionnerait pas si je commentais jf.pack()
La méthode d'emballage dimensionne le cadre de sorte que tout son contenu soit égal ou supérieur à sa taille préférée. Une alternative à pack consiste à établir explicitement une taille de trame en appelant setSize ou setBounds (qui définit également l'emplacement de la trame). En général, utiliser pack est préférable à appeler setSize, car ce dernier laisse le gestionnaire de disposition de trame responsable de la taille de la trame, et les gestionnaires de disposition sont très aptes à s’adapter aux dépendances de la plate-forme et à d’autres facteurs affectant la taille des composants.
Vous devez également vous référer à Javadocs chaque fois que vous avez besoin d'informations supplémentaires sur une API Java API