【问题标题】:Java swing - Where should the ActionListener go?Java swing - ActionListener 应该去哪里?
【发布时间】:2012-12-20 05:03:01
【问题描述】:

按照惯例,用户界面的 ActionListener 应该放在哪里?我有几个选择,但似乎都不对。

速记:

  • GUI - 包含所有 JPanel/可显示对象的主类
  • Lo​​gic - 处理应用程序逻辑的主类

  1. 我可以在 GUI 中内联声明一个新的 ActionListener,将其存储,然后将其指针传递到需要它的位置。
  2. 我可以让 GUI 自己实现 ActionListener 并将对自身的引用传递到需要它的地方。
  3. 我可以在主逻辑中内联声明一个新的 ActionListener(这是有道理的,因为按钮执行的操作是不应出现在 GUI 中的逻辑),然后将其传递给 GUI,GUI 会将其传递到它所在的位置需要。
  4. 我可以在一个全新的文件 GUIListener.java 中编写逻辑,并在需要/传递它的地方声明 GUIListener。
  5. 其他一些方法,我敢肯定有很多。

【问题讨论】:

  • 不要做 (3),让 UI 和交互的东西脱离业务逻辑。假设您希望稍后有一个 web 应用程序在与当前摇摆应用程序相同的数据上运行 - 如果您的逻辑代码与 ActionListeners 杂乱无章,您不能只是重用它。
  • 很多事情都取决于你想要达到的目标,但你可能想看看How to use Actions
  • 查看javax.swing.text.DefaultEditorKit & javax.swing.text.StyledEditorKit 以获取可重用Action 类的示例。

标签: java swing user-interface actionlistener code-organization


【解决方案1】:

这基本上提出了一个关注点分离的问题。 在我看来,您应该将 GUI、Controller 和 Model(bean) 对象保存在单独的文件中。控制器促进与应用程序相关的所有处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 2020-06-08
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多