我的主类显示一个 JMenuBar。此 JMenuBar 由“calculator.ui.MenuBar”管理。
public JMenuBar createMenuBar()
{
JMenuBar menuBar = new JMenuBar();
new calculator.ui.MenuBar(menuBar);
return menuBar;
}
MenuBar 创建我的"file"JMenu 和“插入”JMenu。
public MenuBar(JMenuBar menuBar)
{
new FileMenu(menuBar);
new InsertMenu(menuBar);
}
文件菜单包含"file"的所有选项。在 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;
}
我的问题与我的程序设计有关。对于计算器的每个实例,我想要:
- 在包含我的计算器的主 JPanel 中创建一个 JPanel(这里令我困惑的是我如何 - 从我的 FileMenu 类 - 创建一个位于我的主类中的 JPanel?)。
- 确保计算器对象已刷新。
注意:我还希望我的 JPanel 位于 TabbedPanes 中(如果这会改变任何内容;如果没有,那么一旦我知道第一个问题的答案,我就可以弄清楚该部分。)
感谢您的帮助,我希望我已经足够清楚我想要做什么。
最佳答案
在您的菜单项的 Action
中,您可以使用setSelectedIndex()
在您的JTabbedPane
上选择包含现有计算器实例的 Pane 。您可以使用setComponentAt()
用计算器的实例替换任何选项卡的内容。
有一个相关示例 here .
关于java - 创建 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11060561/