J'ai deux panneaux que je souhaite afficher à l'utilisateur. J'ai décidé de les ajouter à un JTabbedPane. Je veux également permettre à l'utilisateur d'avoir une vue côte à côte d'eux tous les deux en même temps. J'ai donc ajouté les deux panneaux à mon JTabbedPane puis je créé un JSplitPanel en tant que tel:Quel est le problème avec JSplitPanel (ou JTabbedPane)?
tabs.addTab("Align Image Points", imageControlPanel);
tabs.addTab("Align Map Points", mapControlPanel);
JSplitPane splitPane = new JSplitPane(
JSplitPane.HORIZONTAL_SPLIT, true, imageControlPanel,
mapControlPanel);
tabs.addTab("Side by side view", splitPane);
Le JTabbedPane résultant n'a qu'un seul onglet! Quand je supprime le JSplitPane tout fonctionne bien. Deux onglets J'ai ensuite essayé de simplifier le problème pour poster ici et je suis venu avec ceci:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
public class Test {
public static void main(String[] args) {
JFrame f = new JFrame("Test");
JButton b1 = new JButton("First");
JButton b2 = new JButton("Second");
JSplitPane s = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,b1,b2);
JTabbedPane tabs = new JTabbedPane();
tabs.addTab("First", b1);
tabs.addTab("Second", b2);
tabs.addTab("Both", s);
f.getContentPane().add(tabs);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
}
Cela m'a donné un autre problème! Il affiche 3 onglets, mais le volet fractionné du troisième onglet n'affiche aucun bouton!
Donc, ma question est Qu'est-ce qui ne va pas avec JSplitPanel? Vous ne pouvez pas avoir des objets d'affichage qui sont déjà affichés dans un autre onglet? Cela n'a aucun sens. Aidez-moi, s'il vous plaît.
(Note: Je ne veux pas dupliquer les composants que je suis sur le point d'afficher comme je les veux être la même référence)
Oui, j'aime l'idée de banjollity que vous pouvez ajouter "addChangeListener" sur l'onglet, vous pouvez seulement créer une instance de GUIView, et basé sur ce listeur de changement, vous pouvez changer les composants gui dans les deux sens. – Tiger
Merci pour la réponse. Il semble correct (puisque vous avez résolu ce problème vous-même), mais j'ai trouvé une autre interface graphique pour mon programme qui est en fait mieux pour mon cas, donc je ne vais pas avoir besoin de mettre en œuvre cela. –