当您的应用程序带有GUI时,GUI模型将成为应用程序视图。该应用程序通过GUI模型与GUI交互。
还是应该仅将Jframe与应用程序的控制器耦合,并直接与它们通信?
这就是我所做的。我已经将控制器类打包在一起,但是我从未创建一个主控制器类。
我将GUI控制器类与其他任何应用程序控制器类(例如,数据访问对象)放在单独的程序包中。
我通常将每个JPanel放在其自己的类中,但是我不会将此称为要求。尽管Jframe的实例和GUI模型的实例传递给几乎所有的GUI组件,但Jframe都有自己的类。这使菜单操作成为可能。
这篇交通信号GUI文章介绍了如何编写非常简单的GUI的基础知识。
编辑以响应问题中的更改。
GUI控制器与GUI模型是分开的。GUI模型包含组成GUI的所有数据元素。JTextFields的字符串,JTables的DefaultTableModels。
根据您的应用程序设计,建议您为要放入应用程序中心的每个JPanel创建一个Java类。您的Jframe将根据菜单控制显示哪个JPanel。我还建议您查看JTabbedPane,它使用不同的用户界面来完成选择要使用的面板的任务。
假设您要使用左侧的菜单,则每个菜单选项(切换JButton?)将具有其自己的控制器方法或类。这些控制器必须具有Jframe的实例,以便控制器可以调用Jframe类中的方法,该方法将适当的面板放在显示的中心。控制器决定要调用的方法,但是方法本身是Jframe类的一部分。
我一直在谈论Jframe和JPanel类。使用 组合而不是继承
来构建这些类很重要。Jframe类包含一个Jframe。它不扩展Jframe。唯一的扩展Swing组件的时间是当您要重写组件方法时。



