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);
}
}

 

 

Pagina di Francesco Milanese (redbaron85) su Facebook   Pagina di Francesco Milanese (redbaron85) su Google Plus   Profilo di Francesco Milanese (redbaron85) su LinkedIn   Pagina di Francesco Milanese (redbaron85) su Twitter   Canale Youtube di Francesco Milanese (redbaron85ct)

Vai all'inizio della pagina