第一个GUI,应用程序组织

时间:2014-04-24 00:07:20

标签: java swing user-interface class-design

这是我的第一个java swing应用程序,我对该组织有一些疑问。

我需要创建一个应用程序,在登录后将用户重定向到(让他们调用)"普通用户页面","管理页面"或"超级用户页面"。在阅读了一些文章后,我想出了java swing应用程序,使用一个JFrame和面板来隐藏或显示内容(有些东西就像单页应用程序)。

我现在的问题是:

  1. 我是否需要创建4"主要课程" (登录,普通用户,管理员,超级),每个扩展一个jframe,因为它们是特别不同的应用程序,这个jframes有自己的类(panles),用它们隐藏/显示内容
  2. 或者,登录是我的主要Jframe,登录后我在另一个窗口或对话框中显示不同的面板(普通用户,管理员或超级用户),并且他们的面板隐藏显示内容
  3. 当我的第一个问题是正确的时,这是一个很好的文件夹结构:

    文件夹应用:登录,普通,管理员,超级用户类(框架) 文件夹noram用户:与他相关的类/面板 。 。

  4. 提前致谢:))

1 个答案:

答案 0 :(得分:3)

问题/答案:

  

我是否需要创建4"主要类" (登录,普通用户,管理员,超级),每个扩展一个jframe,因为它们是特别不同的应用程序,这个jframe有自己的类(panles),我们隐藏/显示内容

如果您正在创建一个体面的Swing GUI,那么您的类的 none 可能会扩展JFrame,事实上您很少想要这样做。更常见的是,您的GUI类将面向创建JPanels,然后可以将其放置到JFrames或JDialogs或JTabbedPanes中,或者在需要时通过CardLayouts交换。这将大大提高GUI编码的灵活性。

您可能会有一个主View类/ JPanel,并且可以将其内容与其他子视图类交换,这些类将对应于非GUI模型类的不同状态,无论是普通用户,admin,或超级用户。

  

或者,登录是我的主要Jframe,登录后我在另一个窗口或对话框中显示不同的面板(普通用户,管理员或超级用户),并且他们的面板隐藏显示内容

我通常使用对话框登录,例如JDialog,然后在验证凭据后,再次使用基于模型状态的正确视图子类型显示主GUI。

  

当我的第一个问题是正确的时,这是一个很好的文件夹结构:
  文件夹应用程序:登录,普通,管理员,超级用户类(框架)文件夹noram用户:与他相关的类/面板。 。

我认为更重要的是将您的包分成模型,视图,控件和主要。然后,您可以将子包用于程序的各个子部分。

我强烈建议您阅读GUI结构的模型 - 视图 - 控制模式,然后研究其中许多有用的变体。