我的主要课程显示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在我的主类中创建一个Calculator实例。
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;
}
我的问题与我的计划设计有关。对于Calculator的每个实例,我想:
注意:我也希望我的JPanels在TabbedPanes中(如果它改变了任何东西;如果没有,那么一旦我知道第一个问题的答案,我就可以想出那部分。)
感谢您的帮助,我希望我对自己想做的事情已经很清楚了。
答案 0 :(得分:2)
在您的菜单项Action
中,您可以使用setSelectedIndex()
上的JTabbedPane
来选择包含现有计算器实例的窗格。您可以使用setComponentAt()
将任何标签的内容替换为计算器实例。
有一个相关的例子here。