2

私のメインクラスはJMenuBarを表示します。このJMenuBarは、「calculator.ui.MenuBar」から管理されます。

public JMenuBar createMenuBar() 
{
    JMenuBar menuBar = new JMenuBar();
    new calculator.ui.MenuBar(menuBar);
    return menuBar;
}

MenuBarは、「ファイル」JMenuと「挿入」JMenuを作成します。

public MenuBar(JMenuBar menuBar)
{
    new FileMenu(menuBar);
    new InsertMenu(menuBar);
}

FileMenuには、「ファイル」のすべてのオプションが含まれています。Fileクラスには、「NewCalculator」というJMenuItemがあります。ここで、[新しい電卓]をクリックすると、メインクラスのJPanelでメインクラスに電卓のインスタンスを作成する必要があります。

newFileSubMenu = new JMenu("New...");
calculatorFileSubMenu = new JMenuItem("New Calculator");

calculatorFileSubMenu.getAccessibleContext().setAccessibleDescription(
                "New Calculator");

newFileSubMenu.add(calculatorFileSubMenu);

ActionListener newCalculatorListener = new ActionListener() 
    {
    public void actionPerformed(ActionEvent event) 
    {
       newCalculator();
    }
};
calculatorFileSubMenu.addActionListener(newCalculatorListener);

これは私のメインクラスJPanelのコードです:

public Container createContentPane() {
    JPanel contentPane = new JPanel(new BorderLayout());
    contentPane.setOpaque(true);

    JTabbedPane tabbedPane = new JTabbedPane();

    return contentPane;
}

私の質問は私のプログラムのデザインに関連しています。電卓のインスタンスごとに、次のことを行います。

  1. 電卓を含むメインJPanel内にJPanelを作成します(ここで私を困惑させるのは、FileMenuクラスからメインクラスにあるJPanelを作成する方法です)。
  2. 電卓オブジェクトが更新されることを確認します。

注:JPanelsをTabbedPanesに配置することも必要です(変更された場合、変更されない場合は、最初の質問の答えがわかれば、その部分を理解できます)。

あなたの助けに感謝します、私は私がやりたいことを十分に明確にしたことを願っています。

4

1 に答える 1

2

メニュー項目Actionので、を使用setSelectedIndex()してJTabbedPane、既存の電卓インスタンスを保持しているペインを選択できます。setComponentAt()タブのコンテンツを電卓のインスタンスに置き換えるために使用できます。

ここに関連する例があります。

于 2012-06-16T10:28:38.567 に答える