Esempio ora ho un frame principale contiene jtable display tutte le informazioni sul cliente, e c'era un pulsante di creazione per aprire un nuovo JFrame che consente all'utente di creare nuovi clienti. Non voglio che l'utente possa aprire più di una cornice. Qualunque componente swing o API può farlo? o come può disabilitare il frame principale? Qualcosa come JDialog.Come disabilitare JFrame principale quando si apre JFrame nuovo
risposta
Vorrei suggerire per rendere la finestra di dialogo del nuovo cliente un modale JDialog
in modo da non consentire l'input da altre finestre di dialogo/frame nell'app mentre è visibile. Dai uno sguardo allo modality tutorial per i dettagli.
utilizzare solo firstFrame.setVisible(false)
sul primo frame. In questo modo sarà nascosto ..
se si desidera un approccio più generale si potrebbe avere un riferimento al fotogramma visualizzato in corso da qualche parte e cambiarlo quando un nuovo telaio richieste da mostrare
JFrame currentFrame;
void showRequest(JFrame frame)
{
currentFrame.setVisible(false);
currentFrame = frame;
currentFrame.setVisible(true);
}
Voglio che il frame principale sia ancora lì, voglio solo assicurarmi che l'utente apra solo un frame creato. Stavo pensando di disabilitare a pulsante, ma c'è qualche altra buona pratica da implementare? – user236501
puoi provare con __. SetFocusable (false) __, questo manterrà il frame ma all'utente non sarà permesso fare clic su qualsiasi cosa al suo interno .. – Jack
Grazie per il tuo suggerimento. Ho provato a farlo come createButton.addActionListener (nuova java.awt.event.ActionListener() { \t public void actionPerformed (java.awt.event.ActionEvent e) {\t \t \t \t \t ... \t createFrame.setVisible (true); \t mainframe.setFocusable (false); } }); Ma posso ancora fare clic sul pulsante di creazione sul frame principale? – user236501
Credo che si dovrebbe utilizzare questo codice per il JFrame principale quando si tenta di aprire uno nuovo:
this.setEnabled(false);
così semplice e in effetti rispondi alla domanda OP, mi hai aiutato. –
Perfetto, avrebbe dovuto essere la risposta accettata a "come disabilitare il frame principale". Grazie! – corporateWhore
Ci scusiamo per il ritardo risposta, ma hai considerato il design pattern Singleton? Restituirà la stessa istanza di una classe ogni volta che vuoi la classe. Quindi, se l'utente vuole una cornice di entrare nei dettagli, ci sarà un telaio aperto solo (stessa istanza)
va qualcosa di simile:
private static MySingleFrame instance = null; //global var
private MySingleFrame() { } //private constructor
private static MySingleFrame getInstance()
{
if(instance == null)
{
instance = new MySingleFrame();
}
//returns the same instance everytime MySingleFrame.getInstance() is called
return instance;
}
È possibile utilizzare:
private void btn_NewFormActionPerformed(java.awt.event.ActionEvent evt) {
this.hide();
new Frm_NewFormUI().setVisible(true);
}
- 1. Disabilita JFrame quando viene aperto un nuovo JFrame
- 2. JFrame: come disabilitare il ridimensionamento della finestra?
- 3. aggiorna JFrame Java senza fare new JFrame
- 4. Disable JFrame minimizza pulsante
- 5. Come modificare l'icona JFrame
- 6. JFrame in Java
- 7. Estensione di un JFrame
- 8. Come impostare JFrame come genitore per JDialog
- 9. JFrame è troppo piccolo
- 10. MouseListener su JFrame
- 11. Aggiunta JPanel JFrame a
- 12. Come cambiare l'icona java in JFrame
- 13. Come fare in modo che un pulsante JFrame apra un'altra classe JFrame in Netbeans?
- 14. Jframe non si chiude su "X"
- 15. Come mettere a fuoco un JFrame?
- 16. Sfondo trasparente JFrame
- 17. Aggiunta immagine a JFrame
- 18. JFrame On Close Operation
- 19. Chiusura programmatica di JFrame
- 20. Esegui funzione su JFrame close
- 21. JFrame rimozione di JPanel e aggiunta di un nuovo JPanel
- 22. Come impedire a JFrame di chiudersi
- 23. Best Practice with JFrame Constructors?
- 24. Come eseguire JFrame massimizzato in JAVA?
- 25. Come rilevare che JFrame è chiuso?
- 26. Come aggiungere più componenti a un JFrame?
- 27. JFrame: dimensioni effettive del contenuto
- 28. Finestra di disegno in JFrame
- 29. Creare un JFrame/ContentPane arrotondato
- 30. Come si disegna un'immagine su JPanel o JFrame?
Ciao, fa esattamente quello che voglio. Grazie mille – user236501
D'altra parte, le interfacce utente modali sono * molto * fastidiose, quindi si consideri di riprogettare la GUI per consentire la modifica di diversi utenti allo stesso tempo. – KarlP