2013-07-14 5 views
13

Ho una classe JFrame ed è stata creata nella sezione di progettazione su Netbeans. Sto provando a fare un log in che chiude il fotogramma corrente e ne apre un altro, c'è comunque che posso farlo?Come fare in modo che un pulsante JFrame apra un'altra classe JFrame in Netbeans?

ho provato:

JFrame frame = new JFrame(); 

Ma io voglio che sia modificabile nella sezione design!

+2

Vedere [L'uso di più JFrames, Good/Bad Practice?] (Http://stackoverflow.com/a/9554657/418556) –

risposta

18

fare doppio clic sul pulsante Login nel Netbeans o aggiungere il listener di eventi on Clicca Event (ActionListener)

btnLogin.addActionListener(new ActionListener() 
{ 
    public void actionPerformed(ActionEvent e) { 
     this.setVisible(false); 
     new FrmMain().setVisible(true); // Main Form to show after the Login Form.. 
    } 
}); 
+4

È meglio usare 'this.dispose()' invece di renderlo invisibile in quanto sarà ancora in esecuzione senza alcun utilizzo. – Azad

+0

Sì, è corretto. Ma ho pensato che mentre il modulo è dispose può tornare alla funzione principale senza mostrare il FrmMain .. OOPS ... Ho pensato che il codice sarà fermato allora ... –

+1

Grande pensiero :) Il codice non verrà fermato fino all'esecuzione tutte le istruzioni all'interno del metodo actionPerformed. – Azad

3

Questo collegamento lavora con me: video

La risposta postato prima non ha funzionato per me fino alla seconda clicca

Quindi quello che ho fatto è direttamente chiamare:

 new NewForm().setVisible(true); 

     this.dispose();//to close the current jframe 
4
new SecondForm().setVisible(true); 

È possibile utilizzare il metodo setVisible(false) o dispose() per far scomparire il modulo corrente.

0
JFrame.setVisible(true); 

È possibile utilizzare setVisible(false) o dispose() metodo di scomparire forma attuale.