NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Guida Java 2D - Capitolo 09: Le finestre del gruppo JOptionPane: message, confirm, input, option dialog.

 

JOptionPane

Per implementare semplici finestre di pop-up per comunicare messaggi agli utenti, richiedere un valore in input o chiedere conferma (sì/no/annulla), non è necessario implementare una struttura basata su frames, pannelli, componenti e listener: ci si può infatti avvalere degli strumenti forniti dalla classe JOptionPane.

 

JOptionPane è una classe che estende da JComponent (dunque una Swing) e che permette di visualizzare finestre di pop-up modali (ossia: che bloccano il flusso dell'esecuzione del thread che le ha invocate finchè l'utente non le chiude).

 

 

La classe mette a disposizione una gran quantità di metodi (per informazioni dettagliate ed un elenco completo, si rimanda alle API ufficiali), ma la maggior parte di questi è riconducibile alla visualizzazione di quattro tipi di finestre:

  • finestre di conferma, dove l'utente deve cliccare su pulsanti sì-no-annulla;

  • finestre di input, dove è richiesto l'inserimento di un valore;

  • finestre di messaggio, che informano l'utente riguardo qualcosa (messaggio da impostare dal programmatore);

  • finestre 'di opzione', che racchiudono tutti i tipi precedentemente elencati.

 

A queste funzionalità corrispondono i metodi:

  • showConfirmDialog;

  • showInputDialog;

  • showMessageDialog;

  • showOptionDialog.

 

Come detto, esistono più metodi possibili per ciascun tipo di finestra; l'intero set è elencato qui di seguito:

  • static int showConfirmDialog(Component parentComponent, Object message, String title, int optionType)

  • static int showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType)

  • static int showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon)

  • static String showInputDialog(Component parentComponent, Object message)

  • static String showInputDialog(Component parentComponent, Object message, Object initialSelectionValue)

  • static String showInputDialog(Component parentComponent, Object message, String title, int messageType)

  • static Object showInputDialog(Component parentComponent, Object message, String title, int messageType, Icon icon, Object[] selectionValues, Object initialSelectionValue)

  • static String showInputDialog(Object message)

  • static String showInputDialog(Object message, Object initialSelectionValue)

  • static void showMessageDialog(Component parentComponent, Object message)

  • static void showMessageDialog(Component parentComponent, Object message, String title, int messageType)

  • static void showMessageDialog(Component parentComponent, Object message, String title, int messageType, Icon icon)

  • showOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue)

 

 

 

Nella maggior parte dei casi, i parametri hanno significati ovvi, mentre per altri è necessaria una piccola trattazione:

  • parentComponent identifica il componente 'padre' della dialog box; è possibile utilizzare anche il valore null, che utilizzerà un frame di default come padre;

  • messageType definisce lo stile del messaggio: se si tratta di una informazione generica, una domanda, un avviso di 'pericolo'.... a seconda dei casi, verranno mostrati dei simboli nella dialog; valori possibili (significati ovvi): ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, PLAIN_MESSAGE;

  • optionType definisce il set di pulsanti per le opzioni che verranno mostrati sul fondo della dialog box; valori possibili (ma non gli unici possibili): DEFAULT_OPTION, YES_NO_OPTION, YES_NO_CANCEL_OPTION, OK_CANCEL_OPTION.

 

Quando una finestra di dialogo restituisce un intero, il valore di quest'ultimo può essere uno tra i seguenti (costanti predefinite): YES_OPTION, NO_OPTION, CANCEL_OPTION, OK_OPTION, CLOSED_OPTION.

 

La seguente porzione di codice definisce una classe eseguibile che, una volta avviata, mostra a video una una input dialog, una confirm dialog, una message dialog ed infine termina l'esecuzione.

Ecco il codice:

import javax.swing.*;


public class ProvaJOptionPane
{
public static void main(String[] args)
{
String messaggio = JOptionPane.showInputDialog(null, "Inserisci un messaggio", "Inserisci una stringa", JOptionPane.PLAIN_MESSAGE);
int conferma = JOptionPane.showConfirmDialog(null, "Seleziona sì, no o cancella", "Scegli un'opzione", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
String output = "Hai scritto: \"" + messaggio + "\" ed hai cliccato sul pulsante: " + conferma;
JOptionPane.showMessageDialog(null, output);
System.exit(0);
}
}

 

 

 
Vai all'inizio della pagina