2 回答
TA贡献1820条经验 获得超2个赞
private Action actionExit;
public Action getActionExit() {
return actionExit;
}
您的actionExit变量为空。
您的代码中没有任何地方创建ActionExit类的实例。
你需要的地方:
actionExit = new ActionExit();
您的设计似乎有点复杂,我不知道为什么您有一个面板只是为了创建 ActionExit 类的实例。
我建议您只在主类中创建 ActionExit 实例并摆脱 PanelControl 类。
与其使用 IDE 生成令人困惑的代码,不如考虑学习如何自己编写代码,以便更好地构建类。阅读 Swing 教程中有关如何使用菜单的部分,以获取帮助您入门的工作示例。
TA贡献1804条经验 获得超2个赞
必须将菜单项添加到 Native Java Swing 组件中。您必须将其添加到 JFrame。您不能将 MenuItem 添加到面板。任何 Java Swing 应用程序中的父“根”容器都是“本机”和 JFrame。使用您选择的外观和感觉将该容器中的所有其他内容“绘制”到矩形中。
然后你使用你的 TAbstractAction 项目创建一个 MenuItem。该对象可用于创建 JButton、JMenuItem 或 ToolBar 按钮。在代码中保留对 TAbstractAction 的引用,您可以启用/禁用该对象,它实现了一个“可观察”模式,它将启用/禁用您用来构建的所有 UI 控件。我实际上编写了一个 Java Swing 框架来执行 Java 应用程序。它曾经在 Sun Open Source 网站上。如果你希望我可以把它放在 GitLab 上供你玩。Java Swing 很好,但 JavaFX 应该是 JVM 上 UI 的长期目标。
在您的 JFrame 对象中,您需要执行以下操作:
_menuBar = new JMenuBar();
// add controls to the frame
setJMenuBar(_menuBar);
然后您需要将您的“exitMenuItem”添加到您的_MenuBar 控件。
添加回答
举报