如何构建一个好的Java GUI 应用程序设计模式?

How to build a good Java GUI application design pattern?

我想知道 Java GUI 面板编程的好方法。我主要关心的是方法、面板、标签、侦听器、初始化 - 在哪里?

我应该把这些东西放在哪里,我如何将它们放在面板和包装器之间(也许还有控制器)。

假设我必须使用包含一些按钮等的 MenuPanelWrapper 对 MenuPanel 进行编程。如何以最佳方式做到这一点?

我认为创建一些 Java UI 的最佳方法是使用 MVC (model-view-controleur) 模式。

假设:我们有一个 JButtonJLabel 和一个 JTextField Java UI,像这样:

左边是UI,右边是MVC的设计。在这个 UI 中,用户可以在 JTextField 中放置一些文本,然后通过按下 JButton 将其显示在 JLabel 中。

  • View包含了JLabel,因为View代表了Model的数据。 (在某些情况下,View 还可以通过隐藏或添加一些操作来刷新 UI:比如 hidding/adding 一些 JButton 或删除一些侦听器)。
  • 模型 包含要显示的数据,并检索控制器发送的数据。模型在 UI 中不直接可见。就像一个黑盒子,我们可以通过Controler来操作它,通过View来查看他的数据。
  • Controler 包含 JButton 和 JTextField。控制器将更改模型的值,模型将提醒视图刷新自己(在本例中为 JLabel)。

步骤 1

现在,如果用户更改 JTextField 的值,这将影响 Controler 的 JtextField。

步骤 2

如果用户按下 JButton,Controler 将通过调用 [= 模型.

的 129=]

步骤 3

在这一步,Model 将通知他的 View Model.valueLabel 的值 已更改。而 View 将刷新自己(通过更改 JLabel 的值)。最后,JLabel显示数据的值Model.

步骤 4 - 在某些情况下

View 完成刷新后,他可以通过添加或禁用一些操作来刷新 Controler


编辑

P.S: 有时候view和controller是在一起更像是Model和ViewControler,当我们不能把View和Controler分开的时候