Domanda

Sto usando un JFrame come un pop-up da un telaio principale, dove si suppone che l'utente di inserire alcune informazioni e quindi premere OK. Ma il problema è che una volta che questo sub-frame ha aperto, voglio il programma di ignorare qualsiasi altro segnale fino a quando si preme il pulsante OK, simile a come si è fatto con JOptionPanes. Come è ora, si potrebbe fare clic sul pulsante per aprire il sub-frame più volte, ottenendo così diversi fotogrammi, e questo non è l'intenzione (che provoca un sacco di bug pari).

ho potuto risolverlo con un valore booleano che è vero una volta che si preme il pulsante OK, ma che non sembra un modo intelligente per risolvere il problema. Sento che ci deve essere qualche altro modo di farlo, visto che posso vedere l'ambita effetto proveniente dalle mie JOptionPanes, ma non può arrivare ad essa.

Saluti.

È stato utile?

Soluzione

Hai bisogno di una JDialog con modal = true . Dal Javadocs:

  

modal - specifica se l'input blocchi di dialogo all'utente di altre finestre di primo livello quando mostrato

.

Altri suggerimenti

Basta cambiare il JFrame ad un JDialog.

Poi nel costruttore utilizzare questa linea:

setModal(true);

La vostra applicazione sarà quindi bloccare fino a quando la finestra di dialogo viene chiusa.

Si potrebbe voler guardare in un JOptionPane.showInputDialog() se gli utenti sono semplicemente entrando in una String.

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