我是GUI的新手,我想了解如何正确构建我的程序。
我正在寻找为MVC模型创建GUI(所有控制方法都已实现)。假设我需要有3个独立的窗口,某些按钮关闭一个窗口并打开另一个窗口。
我想要有3个班级,每个窗口一个班级。每个窗口都是一个JFrame。这合理吗?然后,我们需要放入动作侦听器。那些会去哪儿?我认为应该有另一个类,主要方法。该类也可以拥有所有动作侦听器,因为这是创建控件并且能够调用控件方法的类。这是一个很好的方法吗?
无论您的建议是什么,您是否可以了解代码方面的外观?我知道如何将组件放在一个框架中,并在该框架中添加一个监听器,以便按钮执行某些操作。但我不确定多窗口会出现这种情况。任何小例子都可以。感谢。
答案 0 :(得分:1)
我建议您不要使用交换JFrame,因为这对用户来说非常烦人 - 您目前使用多少个应用程序会依次抛出一堆窗口?而是考虑在需要的地方明智地使用对话框窗口,例如程序必须停止,直到用户以某种方式与其进行交互,例如登录,但主要是你交换 views (通常是JPanels)使用CardLayout。你的Swing GUI类应该适合创建JPanels,这样可以更好地实现这种灵活性。
是的,GUI代码的主要部分应该在不同的类中。
另外,我强烈建议不要使用GUI-builder实用程序来创建Swing应用程序,直到程序员对Swing基础知识有很好的处理。
有关Swing MVC的简单示例,请查看此处:using-a-jfilechooser-with-swing-gui-classes-and-listeners
答案 1 :(得分:0)
请注意,每个JFrame
都有自己的任务栏条目(我认为)。如果您想避免这种情况和/或需要模态窗口,请考虑JDialog
。
组织在多个地方使用的操作的一种方法是创建单个哈希(作为自己的类或上下文类)来存储它们。使用Action
类而不是{{1}为此 - 将它传递给ActionListener
的构造函数。
您的计划可能如下:
对于一般构造Swing代码,请查看JGoodies Binding。他们在1.5.0版本中有教程/示例代码(它虽旧但仍然是一个很好的例子)。