-
Confirm dialog
Sono dei dialog box che pongono una domanda. A tale domanda si può rispondere 'Sì', 'No' e (opzionalmente) 'Annulla'.
Il modo più semplice per creare uno di questi oggetti è il seguente:
JOptionPane.showConfirmDialog(null, "Confermi la scelta?");
questo codice crea un semplice confirm box con scelta 'Sì'/'No' che pone la domanda del secondo argomento.
E qui vi chiederete: "Dove è finito il pulsante 'Annulla'?"
Allora date un'occhiata a quest'altro modo di creare il solito pannello:
JOptionPane.showConfirmDialog(null, "Confermi la scelta?",
"Richiesta conferma", YES_NO_CANCEL_OPTION, QUESTION_MESSAGE);
Adesso vi spiego cosa sono gli altri argomenti che appaiono in questa chiamata di funzione mostrandovi il metodo generico di uso:
JOptionPane.showConfirmDialog(Component, Object, String, int, int);
Component indica in quale componente deve apparire il box. Se settato su null fa apparire il box al centro dello schermo.
Object può essere una stringa (come nel nostro esempio), una icona o un qualsiasi componente. Icone e componenti vengono visualizzati al posto del testo.
String è una stringa cha andrà a settare la caption del box (il messaggio nella barra in alto).
int (il primo) è un intero che indica il tipo di pulsanti presenti. Per non dover fare i salti mortali per ricordarsi a quale intero sono associate le varie configurazioni sono state definite delle variabili (con il valore intero appropriato) che hanno un nome che richiama l'opzione richiesta (quindi non spaventatevi se vedete YES_NO_OPTION mentre il costruttore richiede un int, poiché YES_NO_OPTION è un intero!).
I valori disponibili per questo dialog box sono YES_NO_OPTION e YES_NO_CANCEL_OPTION.
int (il secondo). Vale lo stesso discorso del primo per quanto riguarda il discorso di un 'nome' al posto di un intero. Questo argomento specifica quale icona deve essere visualizzata. I possibili valori sono:
QUESTION_MESSAGE (icona domanda)
WARNING_MESSAGE (icona attenzione)
PLAIN_MESSAGGE (icona messaggio)
ERROR_MESSAGE (icona errore)
INFORMATION_MESSAGE (icona infos)
-
Input dialog
Sono dei box che accettano un input di testo da parte dell'utente.
Il costruttore breve è:
JOptionPane.showInputDialog(null, "Come ti chiami?");
I due argomenti funzionano come quelli per i confirm dialog.
Il costruttore 'intero' è il seguente:
JOptionPane.showInputDialog(Component, Object, String, int);
Ed hanno gli stessi significati dei relativi argomenti dei confirm dialog, soltanto che l'unico Int si riferisce al tipo di icona.
Se li dichiariamo semplicemente così però questi input panel sono privi di utilità, anche perché così non è possibile sfruttare il testo immesso. Allora basta usare un codice simile a questo:
String nome = JOptionPane.showInputDialog(null, "Come ti chiami?");
così il valore immesso sarà disponibile nella variabile nome.
-
Message dialog
Sono box di testo che mostrano un messaggio e un pulsante 'OK' per far sparire il box. I costruttori 'breve' e 'intero' sono identici a quelli degli input panel.
-
Option dialog
È la più complicata ma anche la più versatile. Il metodo per crearla è il seguente:
JOptionPane.showOptionDialog(Component, Object,
String, int, int, Icon, Object[ ], Object);
Vediamo a cosa servono gli argomenti:
Component componente dove appare;
Object (il primo) stringa, icona o componente da visualizzare come messaggio;
String stringa della caption;
int (il primo) serve per indicare il tipo di finestra: YES_NO_OPTION, YES_NO_CANCEL_OPTION oppure 0 (zero) per indicare un diverso set di pulsanti che creerete voi;
int (il secondo) l'icona;
Icon un'icona personalizzata da mostrare al posto di quelle standard (specificate nell'argomento precedente);
Object[ ] array di oggetti (molto frequentemente bottoni) personalizzati da inserire nel caso il primo valore int sia 0;
Object (l'ultimo) indica l'oggetto (preso tra quelli definiti nell'array precedente) che deve essere selezionato di default (ancora una volta, il primo int deve essere zero).
Ecco un esempio di come si può realizzare un box di questo tipo:
JButton set_bottoni[ ] = new JButton[5];
set_bottoni[0] = new JButton("0-10");
set_bottoni[1] = new JButton("11-20");
set_bottoni[2] = new JButton("21-30");
set_bottoni[3] = new JButton("31-40");
set_bottoni[4] = new JButton("piu' di 40");
int anni = JOptionPane.showOptionDialog(null,
"Quanti anni hai?", "Indicazione anni", 0,
JOptionPane.QUESTION_MESSAGE, null,
set_bottoni, set_bottoni[0]);
Questo codice genera un box di scelta che chiede di specificare l'età dell'utente, usando 5 bottoni per la scelta della fascia d'età, con icona a forma di punto interrogativo e il bottone "0-10" scelto di default.