Domanda

In un JFrame, quando faccio clic su "login", apro un altro Jframe che è la finestra di accesso.

Come faccio ad aspettare che il mio Jframe principale attenda la chiusura del mio Jframe di accesso, prima di fare qualsiasi altra cosa?

È stato utile?

Soluzione

Usa semplicemente una finestra di dialogo modale al posto di un frame, in questo modo non puoi fare nient'altro fino a quando non sarà chiuso

vedi http://mindprod.com/jgloss/modal.html per una spiegazione e vedi http://www.java2s.com/Tutorial/Java/0240__Swing/ASimpleModalDialog .htm per esempio di codice

Se insisti nell'usare un JFrame, potresti usare una soluzione alternativa coprendo l'altro fotogramma con una cornice di vetro .. Non è una bella soluzione, lo ammetto ..

Altri suggerimenti

Sono d'accordo sul fatto che una finestra di dialogo modale sarebbe l'opzione migliore qui, ma se dovessi rispondere a questa domanda nella sua forma più generale, dì:

  

Come faccio aspettare un JFrame per un altro JFrame?

Direi che il modo più semplice per raggiungere questo obiettivo è registrando e licenziando i listener di eventi.

  • Nel tuo " figlio " frame, registra "main" frame come listener di eventi.
  • Nel tuo " principale " telaio,
    • implementa la tua scelta di ascoltatore, ad es. ActionListener
    • nel metodo chiamato dall'ascoltatore, ad es. actionPerformed , codifica la logica che gestisce ciò che accade su ciascuna delle azioni a cui può rispondere nel messaggio "figlio"; telaio.

È possibile implementarlo facilmente in un numero infinito di situazioni, incluso lo scenario di accesso descritto nella domanda.

Usa JModalFrame invece di JFrame.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top