J'ai une classe qui s'étend un JPanel appelé Row. J'ai un groupe de rang ajouté à un JLabel, le code est le suivant:Définition de la taille d'un JPanel
JFrame f=new JFrame();
JPanel rowPanel = new JPanel();
//southReviewPanel.setPreferredSize(new Dimension(400,130));
rowPanel.setLayout(new BoxLayout(rowPanel, BoxLayout.Y_AXIS));
rowPanel.add(test1);
rowPanel.add(test1);
rowPanel.add(test2);
rowPanel.add(test3);
rowPanel.add(test4);
rowPanel.setPreferredSize(new Dimension(600, 400));
rowPanel.setMaximumSize(rowPanel.getPreferredSize());
rowPanel.setMinimumSize(rowPanel.getPreferredSize());
f.setSize(new Dimension(300,600));
JScrollPane sp = new JScrollPane(rowPanel);
sp.setSize(new Dimension(300,600));
f.add(sp);
f.setVisible(true);
où test1 ... etc est une ligne. Cependant, quand je redimensionne la fenêtre, la disposition de la ligne devient en quelque sorte désordonnée (elle se redimensionne aussi) ... comment puis-je empêcher cela?
J'ai changé en utilisant getPreferredSize et setMaximumSize comme vous l'avez suggéré ci-dessus (voir mon code édité) ... encore, c'est parce que le code n'existe même pas. Et si j'avais une bordure? Comment puis-je définir la taille? Il ne mentionne pas à propos de BorderLayout sur le lien que vous avez donné ci-dessus – aherlambang
http://download.oracle.com/javase/tutorial/uiswing/layout/border.html – Cesar
Votre code édité n'est PAS un SSCCE. Oui, le lien mentionne un BorderLayout. Il n'y a aucun moyen que vous auriez pu lire toute la section en 6 minutes !!! Un gestionnaire de disposition travaille sur les composants ajoutés au panneau, pas sur le panneau lui-même. – camickr