0

我正在尝试使用 Java Swing 库构建一个小型记事本应用程序。我有一个 main 函数,它调用JFrame (NotepadClass). 在这NotepadClass我有一个MenuDesigner类是这样的:

this.setJMenuBar(new MenuDesigner());

MenuDesigner扩展JMenuBar调用 actionListener ( MenuActionListener),它是在另一个类中编写的。现在我的问题是:如果我点击 "new" menuItem,其中的标题NotepadClass应该会改变。我如何访问一个两级以上的课程?

我应该使用哪个 Java 概念来实现这一点?

4

4 回答 4

2
于 2012-12-31T17:41:35.820 回答
1

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

this.setJMenuBar(new MenuDesigner(notepadClass));

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

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

于 2012-12-31T17:31:20.660 回答
0

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

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

于 2012-12-31T17:21:48.563 回答
0

为什么您的菜单的 actionListener 在另一个类中?

您可以创建一个新类,implements ActionListener您可以在其中添加自己的逻辑。这样您就可以在另一个文件中重复使用它。

此外,您可能应该MenuDesigner通过将其移动到自己的文件中来解耦您的类。

于 2012-12-31T17:26:05.313 回答