按照惯例,用户界面的ActionListener应该放在哪里?我有几个选择,但似乎没有一个是完全正确的。
速记:
- GUI -包含所有jpanel/可显示对象的主类
- Logic -处理应用程序逻辑的主类
- 我可以在GUI中声明一个新的ActionListener,存储它,然后它/传递它的指针到需要的地方。
- 我可以让GUI本身实现ActionListener,并在需要的地方传递对自身的引用。
- 我可以在主逻辑中声明一个新的ActionListener(这是有意义的,因为按钮做的动作是不应该在GUI中的逻辑),然后将它传递给GUI,它将传递到需要的地方。
- 我可以在一个全新的文件GUIListener.java中编写逻辑,并在需要的地方声明GUIListener/传递它。
- 其他的方法,我相信有很多。
这基本上提出了一个关注点分离的问题。在我看来,您应该将GUI、控制器和模型(bean)对象保存在单独的文件中。控制器促进与应用程序相关的所有处理。