3

我所做的,例如在 NetBeans 中:

  • 创建一个UI组件类,后缀为Swing组件类型,例如JPanel,例如MyUIWidgetJPanel
  • 创建一个逻辑/行为类来处理行为/逻辑,即使用 UI 组件时会发生什么,例如按下其中的按钮等,MyUIWidgetLogic

如果一个组件的行为/结果影响/影响另一个组件,我也可以使用引用将组件/逻辑链接在一起,例如显示的某些选项不再相关,或者提供上下文相关选项。

你觉得这怎么样?好的?坏的?

你做什么工作?

4

4 回答 4

5

我倾向于使用Presentation Model Pattern

从本质上讲,这似乎是您所做的:创建一个包含逻辑的类,与 UI 类分开。UI 类不应包含逻辑 - 仅包含显示界面所需的代码。

然后,您可以使用JGoodies Binding之类的东西将前端值绑定到后端表示模型类(我知道 Spring RCP 也非常适合此)。

于 2010-02-08T09:52:41.207 回答
4

我发现这篇文章如何编写自定义 Swing 组件作为 UI 委托管道的示例很有帮助。

Chet Haase 和 Romain Guy 的Filthy Rich Clients被广泛推荐用于视觉丰富的客户端应用程序的提示。

于 2010-02-08T16:06:36.430 回答
2

由于 Swing 组件通过 Event Dispatch Thread 使用事件进行通信,因此您通常会为您感兴趣的元素(如 JButton)提供 ActionListener 实现。正是这些 ActionListener 实现将包含逻辑,但请记住,如果您不使用线程,您的 UI 元素(如 JButton)将不会在您的 ActionListener 进行一些计算和控制时做出响应。

于 2010-02-08T09:54:46.310 回答
1

您所描述的是一种称为 MVC(模型视图控制器)的设计模式,它不是无可争议的,但它是在 GUI 中分离关注点的最流行的方式。它还确保当您拥有相同数据(模型)的多个表示(视图)时,您可以确保在数据更改时所有这些表示(视图)都得到更新。MVC 的控制器部分负责告诉用户界面应该启用哪些部分(除其他外)。

http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

于 2010-02-08T09:53:09.450 回答