私はユーザーに表示したい2つのパネルを持っています。私はそれらをJTabbedPaneに追加することにしました。私はまた、ユーザーが同時に両方の側面を見ることができるようにしたい。だから、私はJTabbedPaneのに二つのパネルを追加しましたし、私のようなJSplitPanelを作成:JSplitPanel(または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);
結果JTabbedPaneのは一つだけのタブがあります! JSplitPaneを削除すると、すべて正常に機能します。 2つのタブ。私はここに投稿する問題を単純化しようとしたが、これを思いついた。
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);
}
}
これは別の問題をもたらした! 3つのタブが表示されますが、3つ目のタブの分割ウィンドウにはボタンは表示されません。
私の質問は何ですか?JSplitPanelで何が問題になっていますか?既に他のタブに表示されているオブジェクトを表示させることはできませんか?意味がない。私を助けてください。
(注:私は私が彼らには同一の参照になりたいように表示しようとしていますコンポーネントを複製する必要はありません)
はい、私はタブに「addChangeListener」を追加でき、GUIViewのインスタンスを1つしか作成できず、その変更リストに基づいてguiコンポーネントを前後に切り替えることができます。 – Tiger
答えをありがとう。それは正しい(あなた自身でこの問題を解決して以来)そうだが、実際には私のプログラムのための別のGUIデザインが見つかったので、これを実装する必要はないだろう。 –