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

如何构建一个好的JavaGUI应用程序设计模式?,java,user-interface,design-patterns,panel,wrapper,Java,User Interface,Design Patterns,Panel,Wrapper,我想知道Java GUI面板编程的好方法。我主要关心的是方法、面板、标签、侦听器、初始化-在哪里 我应该把这些东西放在哪里,我必须如何把它们放在面板和包装器之间(也可能是控制器) 假设我必须使用包含一些按钮的MenuPanelRapper对MenuPanel进行编程,等等。如何以最佳方式实现这一点?我认为创建一些Java UI的最佳方式是使用MVC模式 假设:在Java UI中有一个JButton、JLabel和一个JTextField,如下所示: 在左边我们有UI,在右边我们有MVC的设计。

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

我应该把这些东西放在哪里,我必须如何把它们放在面板和包装器之间(也可能是控制器)


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

我认为创建一些Java UI的最佳方式是使用MVC模式

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

在左边我们有UI,在右边我们有MVC的设计。在这个UI中,用户可以在JTextField中放入一些文本,并通过按下JButton在JLabel中显示它

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

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

步骤2

如果用户按下jb按钮,控制器将通过调用模型的setter来更改模型的值。valueLabel

步骤3

在此步骤中,模型将通知其视图模型的值。值标签
已更改。视图将刷新自己(通过更改JLabel的值)。最后,JLabel显示数据模型的值

步骤4-在某些情况下

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


编辑


注:有时视图和控制器在一起,更像是模型和视图控制器,我们无法将视图和控制器分开。

谢谢您的回答!这真的很有帮助!