繁体   English   中英

Java GUI设计建议

[英]Java GUI Design Advice

我正在使用Swing框架用Java编写我的第一个GUI应用程序。 我已经使用JTextField,JPasswordField和JButton类对基本的登录系统进行了编码。 现在,我正在为按钮编写actionPerformed方法,由于不再需要这些项目,我想删除这些项目,但是我不确定实现此目的的最佳方法。

我已经考虑过使用这些组件的setVisible方法,该方法似乎有效,但我敢肯定这不是首选的方法。 抱歉,这是一个愚蠢的问题。

将登录对话框与主窗口分开。 完成登录后,只需隐藏登录对话框即可。

您还可以将文本字段和按钮保存到类字段中,然后再为每个字段调用remove(Component)。

通常,您希望能够在一行代码中做到这一点。 因此,您应该考虑包装要显示或隐藏在JPanel中的不同内容。 然后,您可以动态显示或隐藏JPanels。

您可能有一个登录的JPanel,它已经设置并显示,并且一旦验证了用户的密码,就可以显示您的应用程序JPanel。 这可以使用CardLayout轻松完成。

它将容器中的每个组件视为卡片。 一次只能看到一张卡片,并且容器就像一堆卡片一样。

这是一个教程

使用CardLayout,您的代码可能如下所示:

实例变量:

static final String LOGINPANEL = "LOGINPANEL";
static final String MAINPANEL = "MAINPANEL";
JPanel cards;

创建面板的位置:

JPanel loginPanel = new JPanel();
//add your stuff to the login panel
JPanel mainPanel = new JPanel();  
//add your stuff to the main panel

cards = new JPanel(new CardLayout());
cards.add(loginPanel, LOGINPANEL); 
cards.add(mainPanel, MAINPANEL);

然后在您的密码通过AWT线程验证后,您可以执行以下操作:

CardLayout cl = (CardLayout)(cards.getLayout());
cl.show(cards, MAINPANEL);

我同意JPanel的建议。 将登录组件添加到JPanel中,然后在登录后隐藏JPanel。

我建议您使用JDialog进行登录。 成功登录后,您只需要调用“ dialog.dispose()”,然后加载您的界面即可。 如果正在构建的应用程序需要显示多个窗口,则应考虑使用JDesktopPane( http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JDesktopPane.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM