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

时间:2015-08-25 16:31:30

标签: java user-interface design-patterns panel wrapper

我很想知道Java GUI面板的编程方式。我主要关心的是方法,面板,标签,听众,初始化 - 在哪里?

我想把这些东西放在哪里,我怎么把它们放在面板和包装器之间(也许是控制器)。

让我们说我必须使用包含一些按钮的MenuPanelWrapper编程MenuPanel,依此类推。如何以最好的方式做到这一点?

1 个答案:

答案 0 :(得分:5)

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

让我们假设:我们的Java用户界面中有 JButton JLabel JTextField ,如下所示:< / p>

MVC step 1

左侧是 UI ,右侧是 MVC 的设计。在此UI中,用户可以在JTextField中放置一些文本,并通过按JButton将其显示在JLabel中。

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

第1步

现在,如果用户更改了JTextField的值,这将影响控制器的JtextField。

MVC step 2

第2步

如果用户按下JButton,控制器将通过调用模型的设置器来更改 Model.valueLabel 的值。

MVC step 3

第3步

在此步骤中,模型会通知他的查看 Model.valueLabel 的值已更改。并且查看将刷新自己(通过更改JLabel的值)。最后,JLabel显示数据模型的值。

MVC step 4

第4步 - 在某些情况下

查看完成刷新后,他可以通过添加或禁用某些操作来刷新控制器

MVC step 5

<小时/> 的修改

P.S:有时视图和控制器是在一起,当我们无法将视图和控制器分开时,它更像是模型和ViewControler。