2014-07-21 3 views
0

Je voudrais ajouter un code simple qui appellera le JFrame du même paquet si son fullfill l'instruction if et sinon il reprompt le même JFrame. Merci.Appeler JFrame et reprompting le même 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? 
}     

Répondre

2

Ne pas utiliser plusieurs JFrame à la place, vous pouvez utiliser CardLayout et peut basculer entre les différents points de vue.

La classe CardLayout gère deux ou plusieurs composants (généralement des instances JPanel) qui partagent le même espace d'affichage .

Voir Swing Tutorial sur How to Use CardLayout et de trouver un Demo ainsi.

Pour plus d'informations lire The Use of Multiple JFrames, Good/Bad Practice?

+0

Depuis un panneau de connexion est en général beaucoup plus petite qu'une interface graphique principale, il est bien adapté à un (éventuellement) de dialogue modale ou 'JOptionPane'. Un [par exemple de ce dernier] (http://stackoverflow.com/a/10773412/418556). –

+1

@AndrewThompson oui je suis d'accord avec vous et pour d'autres vues nous pouvons utiliser JPanel. – Braj

+1

True. Et même si vous utilisez une boîte de dialogue dans cette instance pour la connexion elle-même, vous pouvez utiliser un 'CardLayout' pour retourner d'une image de style 'splash' dans l'interface principale avant la connexion à l'interface utilisateur graphique après la connexion. –