2
按照惯例,用户界面的ActionListener应该放在哪里?我有几个选择,但没有一个看起来很正确。Java swing - ActionListener应该去哪里?
简写:
- GUI - 主类,它包含所有的JPanels /显示对象
- 逻辑 - 主类,来处理应用程序逻辑
- 我可以在 - 在GUI中声明一个新的ActionListener,存储它,然后将它的指针传递到需要的地方。
- 我可以让GUI本身实现ActionListener并将自己的引用传递到需要的地方。
- 我可以在主逻辑中声明一个新的ActionListener(这是有道理的,因为按钮所做的操作是不应该在GUI中的逻辑),然后将它传递给GUI,然后将它传递到它的位置需要。
- 我可以在一个全新的文件GUIListener.java中写入逻辑,并在需要/传递它的地方声明GUIListener。
- 其他一些方法,我敢肯定有吨。
不要做(3),保持UI和交互的东西摆脱商业逻辑。假设您稍后想要拥有一个Web应用程序,它可以对当前的应用程序执行相同的数据操作 - 如果您的逻辑代码与ActionListener混杂在一起,则不能重复使用它。 – us2012
很多内容都会归结为您想要实现的内容,但您可能想了解一下[如何使用操作](http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html )。 – MadProgrammer
查看'javax.swing.text.DefaultEditorKit'&'javax.swing.text.StyledEditorKit'作为可重用'Action'类的例子。 – trashgod