组织javagui

组织javagui,java,swing,model-view-controller,user-interface,windowbuilder,Java,Swing,Model View Controller,User Interface,Windowbuilder,我对GUI相当陌生,我想了解如何正确构造我的程序 我希望为MVC模型创建一个GUI(所有的控制方法都已经实现了)。假设我需要有3个单独的窗口,某些按钮关闭一个窗口,打开另一个窗口 我想上3节课,每个窗口一节。每个窗口都是一个JFrame。这合理吗?然后,我们需要让听众行动起来。那些会去哪里?我想应该有另外一门课,用主要的方法。该类还可以拥有所有动作侦听器,因为该类也创建控件,并且能够调用控件的方法。这是个好办法吗 无论您的建议是什么,您能否提供一个从代码的角度来看的想法?我知道如何在一个框架中组

我对GUI相当陌生,我想了解如何正确构造我的程序

我希望为MVC模型创建一个GUI(所有的控制方法都已经实现了)。假设我需要有3个单独的窗口,某些按钮关闭一个窗口,打开另一个窗口

我想上3节课,每个窗口一节。每个窗口都是一个JFrame。这合理吗?然后,我们需要让听众行动起来。那些会去哪里?我想应该有另外一门课,用主要的方法。该类还可以拥有所有动作侦听器,因为该类也创建控件,并且能够调用控件的方法。这是个好办法吗


无论您的建议是什么,您能否提供一个从代码的角度来看的想法?我知道如何在一个框架中组合组件,并在该框架中添加侦听器,以便按钮执行某些操作。但我不确定多个窗口会是什么样子。任何小例子都可以。谢谢。

我建议您不要使用交换JFrames,因为这可能会让用户非常恼火——您目前使用的应用程序中有多少个会依次向您抛出一堆窗口?取而代之的是考虑使用明智的对话框窗口,例如,程序必须停止,直到用户以某种方式与它进行交互,如登录,但大多数情况下,你通过使用一个卡片布局来交换视图(通常是JPAND)。您的SwingGUI类应该面向创建JPanel,这将更好地允许这种灵活性

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

此外,我强烈建议不要使用GUI builder实用程序来创建Swing应用程序,直到程序员对Swing基础知识有了很好的掌握


关于Swing MVC的一个简单示例,请看这里:

注意每个
JFrame
都有自己的任务栏条目(我想)。如果你想避免这个和/或需要模态窗口,请考虑<代码> jCalue。 组织在多个位置使用的操作的一种方法是创建一个单例散列(作为它自己的类或上下文类)来存储它们。为此使用
Action
类而不是
ActionListener
——将其传递给
JButton
的构造函数

您的程序可能如下所示:

  • 创建ShowViewFooAction并添加到ActionHash
  • 创建ShowViewBarAction并添加到ActionHash
  • 创建ShowViewBazAction并添加到ActionHash
  • 创建ViewFoo
  • 使用ActionHash中的ShowViewBarAction创建ShowViewBarButton
  • 使用ActionHash中的ShowViewBazation创建ShowViewBazation
  • 创建视图栏
  • 创建ViewBaz

  • 至于一般的Swing代码结构,请查看。版本中有教程/示例代码(虽然很旧,但仍然是一个很好的示例)。

    我认为这将是swing的一个有趣的替代方案,您有选择吗?没有,我仅限于此版本中的swing。但我对swing已经有点熟悉了,所以这会让事情变得更容易。