Java swing—ActionListener应该去哪里?
按照惯例,用户界面的ActionListener应该去哪里?我有几个选择,但没有一个是完全正确的 速记:Java swing—ActionListener应该去哪里?,java,swing,user-interface,actionlistener,code-organization,Java,Swing,User Interface,Actionlistener,Code Organization,按照惯例,用户界面的ActionListener应该去哪里?我有几个选择,但没有一个是完全正确的 速记: GUI—包含所有JPanels/displayable对象的主类 Logic—处理应用程序逻辑的主类 我可以在GUI中在线声明一个新的ActionListener,存储它,然后将其指针传递到需要它的地方 我可以让GUI本身实现ActionListener,并将对自身的引用传递到需要它的地方 我可以在主逻辑中在线声明一个新的ActionListener(这很有意义,因为按钮所做的操作是G
- GUI—包含所有JPanels/displayable对象的主类
- Logic—处理应用程序逻辑的主类
这基本上提出了关注点分离的问题。
在我看来,应该将GUI、控制器和模型(bean)对象保存在单独的文件中。控制器,促进与应用程序相关的所有处理 不要这样做(3),将UI和交互内容排除在业务逻辑之外。假设您希望以后有一个与当前swing应用程序在相同数据上运行的Web应用程序-如果您的逻辑代码中充斥着ActionListener,您不能只是重复使用它。很多都取决于您想要实现的目标,但是您可能想看一下。看看
javax.swing.text.DefaultEditorKit
&javax.swing.text.StyledEditorKit
以了解可重用的操作
类的示例。