2014-07-21 29 views
0

我想添加一个简单的代码,将调用JFrame从相同的包,如果它fullfill if语句,如果不是它会重新提交相同的JFrame。谢谢。调用JFrame和reprompting相同的JFrame

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    login lg = new login(username,password); 
    boolean isMatches = lg.checkUser(); 
    if(isMatches) { 
     Welcome WEL = new Welcome(); // How to call the Welcome JFrame 
     WEL.setVisible(true); 
    } 
    else 
     // How to make it reprompt the same JFrame? 
}     

回答

2

不要使用多个JFrame,而不是你可以使用CardLayout并且可以在不同视图之间切换。

CardLayout类管理共享相同显示空间的两个或多个组件(通常为JPanel实例)。

请参阅Swing教程 on How to Use CardLayout并找到Demo以及。

有关的详细信息读The Use of Multiple JFrames, Good/Bad Practice?

+0

由于登录面板典型地是比主GUI小得多,它是非常适合于(可能)模态对话框或'JOptionPane'。 [例如后者](http://stackoverflow.com/a/10773412/418556)。 –

+1

@AndrewThompson是的,我同意你和其他观点,我们可以使用JPanel。 – Braj

+1

是的。即使在本例中使用对话框登录,您可以在登录之前使用CardLayout从主UI中的“splash”样式图像翻转到登录后的GUI本身。 –