【问题标题】:How to manage multiple windows system - Java(Swing)如何管理多个windows系统-Java(Swing)
【发布时间】:2013-04-01 20:10:59
【问题描述】:

我正在进行我的第二年项目,我需要你的帮助。 我想创建一个包含多个窗口的 DIY 商店系统。 所有的屏幕都完成了,只需要知道如何将它们一起管理 系统启动时会弹出一个带有公司徽标、地址、文本字段等的登录窗口。然后棘手的部分开始了,有 3 种类型的用户(管理员、销售和股票用户),每一种都有不同的主菜单(GUI)。

任何想法如何处理这个问题?

【问题讨论】:

  • 您可以同时拥有多个用于同一框架的菜单系统。唯一的限制是它们中的一个可以在任何给定时刻处于活动状态。
  • 谢谢,我该如何实现呢? mainGUI.java 文件中的 3 个构造函数?是否必须将 JFrame 用于 mainGui,而将 JDialog 用于其余窗口、登录和其他窗口?

标签: java swing user-interface jframe jdialog


【解决方案1】:

建议您使用用户帐户上的对象来确定要显示哪个面板,即

admin 获得一个从 Jpanel 扩展的管理面板(可能是所有用户面板共享/扩展的基本面板)然后您将检查哪个用户帐户正在登录并加载正确的面板或面板的一部分,重新​​使用尽可能多的 gui 面板以减少代码量。这可能会在以后有所帮助,就好像您正在使用面板和用户组一样,您可以做的是...的实例......

               Jpanel
                 |
         some base gui panel
        |           |           |
adminPanel  salesPanel    userPanel

【讨论】:

  • 感谢您的回答。我可以对 JFrame 对象使用相同的想法吗?我将有 3 个系统 JFrame,每个用户一个。基本 JFrame 将有一个空的 JFrame,其中将适当用户的 JFrame 对象传递到其构造函数中。我可以通过调用 JDialog 登录窗口来启动我的系统。看起来怎么样?
  • “我可以对 JFrame 对象使用相同的想法吗?” 只要您有 2 个或更多帧,代码就会出错。这可能需要 1 个框架、1 个 CardLayout 或选项卡式窗格和 3 个面板,其中没有一个扩展面板。
  • 同意 andrew thompson 的观点,你真的应该在那个框架内只有一个框架,你可以在其中放置其他面板。
  • 你会在应用程序启动时定义你的主 jframe,然后弹出用户对话框以获取凭据,然后加载用户组面板,我不愿意给出任何更具体的设计规范,因为这是你的项目,如果您提出更详细的技术问题,我很乐意回答。见jframejpanel
【解决方案2】:
Here is my idea for this:
to create a MainGUI.java file (JFrame) that contains
3 constructors(+ default constr) with separate GUI for each user. In the main method
I would call a login object(JDialog) and check what type of user
I'm dealing with and then create an appropriate mainGUI
object.    

(伪代码)请评论。

    class mainGUI
    //variables
    public mainGui() // default constructor
    //body
    public mainGUI(var1, var2, va3) // type1 user constructor
    //body
    public mainGUI(var1, var3, var2) // type2 user constructor
    //body
    public mainGUI(var2, var1. var3) //type3 user constructor

    main method()
    mainGui m = new mainGUI();
    Login l1 = new Login(m);
    if(l1.getPassword() == some array value) // type1 User passwords are stored in Array1 (eg. Admin)
    then
    mainGUI m1 = new mainGUI(var1, var2, var3); // creates appropriate user gui
    else if(l1.getPassword() == some array value ) // user type2 (e.g. Sales Staff)
    then
    mainGUI m1 = new mainGUI(var1, var3, var2);
    and so on...

【讨论】:

    猜你喜欢
    • 2018-09-28
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    相关资源
    最近更新 更多