Java ActionListener在另一个Class中

时间:2012-12-31 17:16:14

标签: java swing class actionlistener jmenu

我正在尝试使用Java Swing库构建一个小的记事本应用程序。我有一个main函数调用JFrame (NotepadClass)的构造函数。在这个NotepadClass中,我有一个MenuDesigner类,如下所示:

this.setJMenuBar(new MenuDesigner());

MenuDesigner类扩展JMenuBar,它调用在另一个类中编写的actionListener(MenuActionListener)。 现在我的问题是:如果我点击“新”menuItemNotepadClass中的标题应该会更改。如何访问两级的课程?

我应该使用哪种Java概念来实现这一目标?

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

如果没有看到您的代码,很难给出明确的答案,但编写单独的类来构建菜单的原因之一是您可以将实例传递给类。

this.setJMenuBar(new MenuDesigner(notepadClass));

这就是为什么在构建GUI时拥有一个或多个模型类的好处之一。

您可以将最高级别模型类的实例传递给所有GUI组件,每个组件都可以获取或设置它们所代表的模型类的部分。

答案 2 :(得分:0)

您可以在构造函数中传递NotepadClass并提供更改标题的方法。

另一种选择是在NotepadClass中构建ActionListener,或者让NotepadClass本身实现Actionlistener接口,以便您可以访问变量或方法。

答案 3 :(得分:0)

为什么你的actionListener适用于另一个类的菜单?

您可以create a new class that implements ActionListener添加自己的逻辑。这样您就可以在另一个文件中重复使用它。

此外,您应该通过将MenuDesigner类移到自己的文件中来解除它。