2009-08-04 5 views
1

J'avais un dialogue assez simple avec une paire de JPanels de taille à peu près égale, contenue dans un JSplitPane. Maintenant, je cherche à ajouter un troisième JPanel et je ne suis pas sûr qu'il y ait une solution évidente. Y a-t-il un bon cadre d'ancrage de fenêtres? ou est-ce une chose horriblement complexe à entrer? Si je ne fais que coller avec le split à 3 panneaux, est-ce que je dois utiliser une paire de JSplitPanes imbriqués ou existe-t-il une alternative qui permet un split à 3 voies?alternatives/améliorations de JSplitPane

Répondre

1

Disons que vous avez trois panneaux:

JPanel panel1; 
JPanel panel2; 
JPanel panel3; 

// set up panels 
... 

// put three panels into a horizontal split pane, 
// with 2 resizeable dividers 
JSplitPane splitPaneLeft = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); 
JSplitPane splitPaneRight = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); 
splitPaneLeft.setLeftComponent(panel1); 
splitPaneLeft.setRightComponent(panel2); 
splitPaneRight.setLeftComponent(splitPaneLeft); 
splitPaneRight.setRightComponent(panel3); 

// put splitPaneRight onto a single panel 
JPanel panelSplit = new JPanel(); 
panelSplit.add(splitPaneRight); 
+0

Notez la dernière ligne. Vous ajoutez le * DAST * splitPane au conteneur, pas le premier comme je l'ai fait, puis je me suis demandé pourquoi les autres ne s'affichent pas. Assez non-évident. – Bradjcox

+0

C'est ainsi que j'ai intuitivement fait fonctionner mon interface graphique avec 3 panneaux. Cependant, cela soulève des problèmes avec le redimensionnement des volets divisés: le panneau de droite peut maintenant être redimensionné sur le panneau de gauche, mais pas l'inverse. Essayez de basculer le panneau maître vers le splitPaneLeft pour voir différentes fonctionnalités de redimensionnement. Choisissez le style qui convient le mieux à votre interface graphique. – Ron

Questions connexes