Bonjour,
Je rencontre quelques soucis avec l'utilisation de la méthode pack() sur une JFrame.
En fait, j'ai une seule JFrame, avec un JPanel principal associé à un CardLayout, et plusieurs JPanel susceptibles d'être visibles via le layout (la partie gestion du layout fonctionne correctement).
Le problème est que mes différents panels n'ont pas forcément la même taille, et que je voudrais donc, à l'affichage de l'un deux, faire en sorte que ma fenêtre s'adapte à ce panel. Pour ce faire, je gère le changement de panels comme suit :
Code MaJFrame.java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private JPanel monPanelPrincipal; public void changerPanel(JPanel _panel) { // En fait, ce sont des panels personnalisés, getNomPanel() retournant le nom utilisé comme clé pour le panel lors de l'ajout au layout ((CardLayout) monPanelPrincipal.getLayout()).show(monPanelPrincipal, _panel.getNomPanel()); // Tentative d'ajustement de la taille de la JFrame this.setLocationRelativeTo(null); this.pack(); }
Sur mon premier panel, cela fonctionne, par contre sur le second, qui est plus complexe, il me manque une bonne partie en longueur. Ce socond panel contient les éléments suivants :
Pour le moment, je ne fixe la taille de mes containers à aucun endroit (si ce n'est un MinimumSize pour la JFrame).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 - Second panel (layout : GridLayout(1,2)) : - Sous-panel_1 (layout : GridBagLayout) : - Plusieurs composants ; - Sous-panel_2 (pas de layout) : - Image ;
J'ai l'impression que le fait que mon second panel est composé deux autres panels est la source du problème. Quelqu'un pourrait-il confirmer/infirmer ceci, ou bien aurait une piste pour contourner le problème ?
Merci.
Mako.
Partager