Java GUI设计建议

时间:2009-07-11 19:13:46

标签: java user-interface swing

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

我考虑过使用这些组件的setVisible方法,这似乎有效,但我确信这不是首选方法。对不起,如果这是一个愚蠢的问题..

5 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

  

它将容器中的每个组件视为卡片。一次只能看到一张卡片,而容器则充当一叠卡片。

Here is a tutorial

使用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);

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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