2

私はしばらく調べて、複数のパネルを JTabbedPane に追加しようとしても遊んでいました。

私の質問は、同じ Jpanel を複数の TabbedPanes に追加することは可能ですか? 私が試したすべての方法で、正しく機能していないようです。これがその仕組みです。

public MainGUI() {

  JMenuBar menuBar = new JMenuBar();
  setJMenuBar(menuBar);

  JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
  getContentPane().add(tabbedPane, BorderLayout.CENTER);

  JEditorPane instructionalEditorPane = new JEditorPane();
  tabbedPane.addTab("Instructional", instructionalEditorPane);

  JPanel codePanel = new JPanel();
  JPanel drawPanel = new JPanel();

  JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, codePanel, drawPanel);
  splitPane.setResizeWeight(0.75);

  tabbedPane.addTab("Code Panel", splitPane);

  JEditorPane unifiedInstPane = new JEditorPane();
  JPanel unifiedCodePanel = new JPanel();
  JPanel unifiedDrawPanel = new JPanel();
  JSplitPane unifiedSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, unifiedCodePanel, unifiedDrawPanel);
  unifiedSplitPane.setResizeWeight(0.75);

  JSplitPane unifiedPanel = new JSplitPane(JSplitPane.VERTICAL_SPLIT,unifiedInstPane, unifiedSplitPane);
  unifiedPanel.setResizeWeight(0.40);
  tabbedPane.addTab("Unified Tab", unifiedPanel);
}

私がやりたいことは、instructionalEditorPane と splitPane を複数の tabbedPanes に追加するだけですが、そうすると元の個々の tabbedPanes が失われます。必要に応じて、この方法で実行できますが、unifiedInstPane と instructionalEditorPane の両方に書き込み、それらを最新の状態に保つ必要があります。codePanel と drawPanels が埋め込まれた 2 つの splitPanes に対してもこれを行う必要があります。これにより、すべてのパネルを同期させることが難しくなります。

助言がありますか?

4

1 に答える 1