gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 06:13:04 25 4
gpt4 key购买 nike

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

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

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

最佳答案

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

假设:我们的 Java UI 中有一个 JButtonJLabel 和一个 JTextField,如下所示:

MVC step 1

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

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

第 1 步

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

MVC step 2

第 2 步

如果用户按下 JButton,Controler 将通过调用 Model 的 setter 来更改 Model.valueLabel 的值。

MVC step 3

第 3 步

在此步骤中,Model 将通知他的View Model.valueLabel 的值已更改。 View 将自行刷新(通过更改 JLabel 的值)。最后,JLabel 显示数据 Model 的值。

MVC step 4

第 4 步 - 在某些情况下

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

MVC step 5


编辑

P.S:有时 View 和 Controller 在一起,当我们无法将 View 和 Controller 分开时,它更像是模型和 View Controller 。

关于java - 如何构建良好的 Java GUI 应用程序设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32209344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com