首页 文章

组织一个java GUI

提问于
浏览
-1

我是GUI的新手,我想了解如何正确构建我的程序 .

我正在寻找为MVC模型创建GUI(所有控制方法都已实现) . 假设我需要有3个独立的窗口,某些按钮关闭一个窗口并打开另一个窗口 .

我想有3个班,每个窗口一个 . 每个窗口都是一个JFrame . 这合理吗?然后,我们需要放入动作侦听器 . 那些会去哪儿?我认为应该有另一个类,主要方法 . 该类也可以拥有所有动作侦听器,因为那个类也创建了控件并且能够调用控件的方法 . 这是一个很好的方法吗?

无论您的建议是什么,您能否提供一个关于代码如何看待的想法?我知道如何将组件放在一个框架中,并在该框架中添加一个监听器,以便按钮执行某些操作 . 但是我不确定多窗口会出现这种情况 . 任何小例子都可以 . 谢谢 .

2 回答

  • 1

    我建议您不要使用交换JFrame,因为这对用户来说非常烦人 - 您目前使用多少个应用程序按顺序抛出一堆窗口?而是考虑在需要的地方明智地使用对话框窗口,例如程序必须停止,直到用户以某种方式与其进行交互,例如登录,但主要是通过使用CardLayout交换视图(通常是JPanel) . 你的Swing GUI类应该适合创建JPanels,这将更好地提供这种灵活性 .

    是的,GUI代码的主要部分应该在不同的类中 .

    另外,我强烈建议不要使用GUI-builder实用程序来创建Swing应用程序,直到程序员对Swing基础知识有很好的处理 .

    有关Swing MVC的简单示例,请查看此处:using-a-jfilechooser-with-swing-gui-classes-and-listeners

  • 0

    请注意,每个 JFrame 都有自己的任务栏条目(我认为) . 如果你想避免这种情况和/或需要模态窗口,请考虑 JDialog .

    组织在多个地方使用的操作的一种方法是创建一个单独的哈希(作为它自己的类或上下文类)来存储它们 . 使用 Action 类而不是 ActionListener 为此 - 将它传递给 JButton 的构造函数 .

    你的程序可能是这样的:

    • 创建ShowViewFooAction并添加到ActionHash

    • 创建ShowViewBarAction并添加到ActionHash

    • 创建ShowViewBazAction并添加到ActionHash

    • 创建ViewFoo

    • 使用ActionHash中的ShowViewBarAction创建ShowViewBarButton

    • 使用ActionHash中的ShowViewBazAction创建ShowViewBazAction

    • 创建ViewBar ...

    • 创建ViewBaz ...

    至于通常构造Swing代码,请查看JGoodies Binding . 他们在1.5.0版本中有教程/示例代码(它虽旧但仍然是一个很好的例子) .

相关问题