La funzione principale di una finestra di dialogo è che un'applicazione o un sito Web recuperi alcuni input dall'utente. Quell'input può essere un riconoscimento che hanno letto un messaggio o qualcosa che hanno inserito in un'area di testo.

Una finestra di dialogo cattura immediatamente l'attenzione dell'utente. È uno strumento perfetto per raccogliere o visualizzare informazioni importanti.

Java è un linguaggio diversificato che fornisce diverse classi per creare finestre di dialogo. Queste classi includono JOptionPane, JDialog e JFrame.

La classe JOptionPane

È possibile creare una finestra di dialogo standard utilizzando uno dei numerosi metodi statici appartenenti alla classe JOptionPane. Questi includono:

  • showMessageDialog(), che inoltra un messaggio all'utente.
  • showConfirmDialog(), che pone una domanda che richiede conferma.
  • showInputDialog(), che richiede un input all'utente.
  • showOptionDialog(), che è una combinazione degli altri tre metodi.

Creazione di una finestra di dialogo JOptionPane

instagram viewer
importare javax.swing. JFrame;
importare javax.swing. JOptionPane;

pubblicoclasseJOptionPaneApp{
JOptionPaneApp() {
Cornice JFrame = nuovo JFrame();
JOptionPane.showMessageDialog (frame, "Questa è una finestra di messaggio di JOptionPane.");
}

pubblicostaticovuotoprincipale(Stringa[] argomenti){
nuovo JOptionPaneApp();
}
}

Il codice sopra crea la seguente finestra di dialogo:

Sebbene JOptionPane fornisca finestre di dialogo standard, ha molte opzioni che consentono di modificarne il comportamento. Ad esempio, la finestra di dialogo del messaggio può assumere uno di diversi tipi. Quello sopra è un esempio di an INFORMAZIONE_MESSAGGIO, che è l'impostazione predefinita. Gli altri tipi di messaggi sono:

  • MESSAGGIO DI ERRORE
  • AVVISO_MESSAGGIO
  • QUESTION_MESSAGE
  • PLAIN_MESSAGE

Creazione di un messaggio di errore

Ecco un esempio di come utilizzare un tipo di messaggio diverso per la finestra di dialogo JOptionPane:

JOptionPane.showMessageDialog (frame, "Questa è una finestra di messaggio di errore di JOptionPane.",
"Errore", JOptionPane. MESSAGGIO DI ERRORE);

Sostituisci il showMessageDialog() riga nel programma originale con la riga di codice sopra e vedrai la seguente finestra di dialogo di errore:

La classe JDialog

La classe JDialog consente di creare finestre di dialogo personalizzate. Questo classe Java appartiene al javax.swing pacchetto ed estende la classe Dialog. Ha accesso a un'ampia varietà di metodi diretti e indiretti. Questa classe Java ha un totale di 16 Costruttori Java.

A parte il costruttore predefinito, ciascuno degli altri 15 accetta un frame, una finestra o una finestra di dialogo con una combinazione di diversi altri argomenti.

I principali costruttori JDialog includono:

  • JDialogo() crea una finestra di dialogo senza cornice, titolo o modalità.
  • JDialog (proprietario del dialogo, titolo della stringa, modale booleano) crea una finestra di dialogo con un proprietario della finestra di dialogo, un titolo della stringa e una modalità.
  • JDialog (proprietario del frame, titolo della stringa, modale booleano) crea una finestra di dialogo con un proprietario del frame, un titolo di stringa e una modalità.
  • JDialog (proprietario della finestra, titolo della stringa, modale booleano) crea una finestra di dialogo con un proprietario della finestra, un titolo di stringa e una modalità.

Creazione di una finestra di dialogo JDialog

importare java.awt. Layout di flusso;
importare java.awt.event. AzioneEvento;
importare java.awt.event. Ascoltatore d'azione;
importare javax.swing. JPulsante;
importare javax.swing. Jdialogo;
importare javax.swing. JFrame;
importare javax.swing. etichetta J;
importare javax.swing. costanti di finestra;

pubblicoclasseJDialogApp{
JDialogApp() {
Cornice JFrame = nuovo JFrame();
Finestra di dialogo J = nuovo JDialogo (riquadro, VERO);
dialog.setLayout(nuovo FlowLayout());

JLabel displayText = nuovo JLabel("Questa è una finestra di JDialog.");
JPulsante btn = nuovo JPulsante("OK");

btn.addActionListener(nuovo Ascoltatore di azioni() {
pubblicovuotoazione eseguita(AzioneEvento e){
dialog.setVisible(falso);
}
});

dialog.add (displayText);
dialog.add (btn);

dialog.setSize(200,150);
dialog.setTitle("Finestra di dialogo");
dialog.setVisible(VERO);
dialog.setDefaultCloseOperation (WindowConstants. DISPOSE_ON_CLOSE);
}

pubblicostaticovuotoprincipale(Argomenti stringa[]){
nuovo JDialogApp();
}
}

Il codice sopra crea la seguente finestra di dialogo:

Ci sono diversi aspetti importanti del codice che dovresti notare. Il programma utilizza il JDialog (proprietario del frame, modale booleano) costruttore, a cui passa a JFrame e il valore "vero" come argomenti. JFrame è il proprietario di JDialog, il che significa che è responsabile della visualizzazione della finestra di dialogo. Il valore "vero" significa che la finestra di dialogo blocca l'input ad altre finestre correlate quando viene visualizzata.

Il costruttore nel codice sopra non accetta un titolo come argomento. Tuttavia, il proprietario della cornice ha bisogno di un titolo. Quindi, per quell'attività, puoi usare il setTitolo() metodo, disponibile tramite la classe Dialog che JDialog estende. Gli altri metodi importanti nel codice sono setVisible(), setSize(), e setDefaultCloseOperation().

setVisible prende un valore booleano ed è responsabile della visualizzazione del frame. setSize prende l'altezza e la larghezza della finestra di dialogo. setDefaultCloseOperation accetta uno dei tre valori per decidere cosa succede quando un utente chiude la finestra di dialogo.

La classe JFrame

JDialog e JOptionPane utilizzano entrambi la classe JFrame per creare finestre di dialogo. Tuttavia, la classe JFrame può creare finestre di dialogo da sola. La classe JFrame estende la classe Frame e, proprio come la classe JDialog, consente di creare finestre di dialogo personalizzate.

JFrame ha quattro costruttori e diversi metodi diretti e indiretti che dovrai usare per creare una finestra di dialogo.

Creazione di una finestra di dialogo JFrame

importare java.awt.event. AzioneEvento;
importare java.awt.event. Ascoltatore d'azione;

importare javax.swing. JPulsante;
importare javax.swing. JFrame;
importare javax.swing. etichetta J;
importare javax.swing. pannello J;
importare javax.swing. costanti di finestra;

pubblicoclasseJFrameApp{
JFrameApp() {
Cornice JFrame = nuovo JFrame();
frame.setTitle("Finestra di dialogo");
Pannello JPanel = nuovo Pannello J();

JLabel displayText = nuovo JLabel("Questa è una finestra di JFrame.");
panel.add (displayText);
JPulsante btn = nuovo JButton("Pulsante OK");

btn.addActionListener(nuovo Ascoltatore di azioni() {
pubblicovuotoazione eseguita(AzioneEvento e){
frame.setVisible(falso);
}
});

pannello.aggiungi (btn);

frame.add (pannello);
frame.setDefaultCloseOperation (WindowConstants. EXIT_ON_CLOSE);
frame.setSize(250, 150);
frame.setVisible(VERO);
}

pubblicostaticovuotoprincipale(Stringa[] argomenti){
nuovo JFrameApp();
}
}

Il codice sopra crea la seguente finestra di dialogo:

Il codice usa il costruttore JFrame predefinito e diversi metodi familiari, come il setTitolo() metodo (usato nell'app JDialog sopra). Un oggetto sconosciuto nel programma sopra è il JPanel, che è un contenitore generico. Ciò offre a JFrame la flessibilità di aggiungere più layout e componenti a un frame.

Il AzioneListener() e azione eseguita() i metodi gestiscono l'evento di un utente che fa clic su OK pulsante.

Quale classe Java è la migliore per la creazione di finestre di dialogo?

L'unico scopo della classe JOptionPane è rendere il processo di creazione della finestra di dialogo più conveniente per gli sviluppatori Java. Tuttavia, se hai bisogno di una finestra di dialogo più personalizzata, la classe JDialog è la migliore opzione successiva.

La classe JFrame crea UI, ma puoi usarla per creare molti elementi diversi di una GUI, comprese le finestre di dialogo.

La finestra di dialogo creata con la classe JFrame ha un'icona ridotta a icona, mentre le altre no. Se si desidera una finestra di dialogo modale, che l'utente deve agire prima di completare un'attività, JFrame non è l'approccio migliore.

Come scrivere la tua prima applicazione GUI Java 

Leggi Avanti

CondividereTwittaCondividereE-mail

Argomenti correlati

  • Programmazione
  • Programmazione
  • Giava
  • Tutorial di codifica

Circa l'autore

Kadeisha Kean (56 articoli pubblicati)

Kadeisha Kean è uno sviluppatore di software full-stack e uno scrittore tecnico/tecnologico. Ha la spiccata capacità di semplificare alcuni dei concetti tecnologici più complessi; produrre materiale che può essere facilmente compreso da qualsiasi principiante della tecnologia. È appassionata di scrittura, sviluppo di software interessanti e viaggi per il mondo (attraverso i documentari).

Altro da Kadeisha Kean

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti