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 类中,有一个名为“New Calculator”的 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. 确保 Calculator 对象刷新。

注意:我还希望我的 JPanel 位于 TabbedPanes 中(如果这改变了任何东西;如果没有,那么一旦我知道第一个问题的答案,我就可以弄清楚那部分。)

感谢您的帮助,我希望我已经很清楚我想要做什么。

4

1 回答 1

2

在您的菜单项中Action,您可以使用setSelectedIndex()您的JTabbedPane来选择包含现有计算器实例的窗格。您可以使用setComponentAt()计算器实例替换任何选项卡的内容。

这里有一个相关的例子。

于 2012-06-16T10:28:38.567 回答