【发布时间】:2012-12-20 05:03:01
【问题描述】:
按照惯例,用户界面的 ActionListener 应该放在哪里?我有几个选择,但似乎都不对。
速记:
- GUI - 包含所有 JPanel/可显示对象的主类
- Logic - 处理应用程序逻辑的主类
- 我可以在 GUI 中内联声明一个新的 ActionListener,将其存储,然后将其指针传递到需要它的位置。
- 我可以让 GUI 自己实现 ActionListener 并将对自身的引用传递到需要它的地方。
- 我可以在主逻辑中内联声明一个新的 ActionListener(这是有道理的,因为按钮执行的操作是不应出现在 GUI 中的逻辑),然后将其传递给 GUI,GUI 会将其传递到它所在的位置需要。
- 我可以在一个全新的文件 GUIListener.java 中编写逻辑,并在需要/传递它的地方声明 GUIListener。
- 其他一些方法,我敢肯定有很多。
【问题讨论】:
-
不要做 (3),让 UI 和交互的东西脱离业务逻辑。假设您希望稍后有一个 web 应用程序在与当前摇摆应用程序相同的数据上运行 - 如果您的逻辑代码与 ActionListeners 杂乱无章,您不能只是重用它。
-
很多事情都取决于你想要达到的目标,但你可能想看看How to use Actions。
-
查看
javax.swing.text.DefaultEditorKit&javax.swing.text.StyledEditorKit以获取可重用Action类的示例。
标签: java swing user-interface actionlistener code-organization