Det finns fyra huvudtyper av dialoger:
Input, som låter användaren ange ett värde (normalt
med hjälp av ett textfält, en lista eller en combo box).
Confirm, som visar ett meddelande och knappar av typen "OK", "Yes",
"No" eller "Cancel". Det finns för närvarande endast knappar på
engelska.
Message, visar ett meddelande och en "OK"-knapp.
Option, en mycket flexibel dialogruta.
En dialogruta består av fyra delelement:
Ikon, som väljs med hjälp av dialogtypen (se ovan) om
inte annat angetts.
Meddelande, normalt en textsträng men kan vara vilket objekt som
helst.
Inmatningskomponent, normalt ett textfält, en lista eller en
combo box.
Knappar
Såväl konstruktorer som statiska metoder tar parametrar av följande
typer:
Component parentComponent, dialogens förälder.
Object message, meddelandet (se ovan). Om det är en
String eller en Component visas det oförändrat,
en Icon visas i en JLabel och övriga visas som strängar
med hjälp av toString(). Är det en array visas ett objekt
i taget.
String title, dialogens titel.
int messageType, giltiga värden är konstanter i
JOptionPane som symboliserar till exempel fråga eller information.
Denna parameter avgör vilken ikon dialogen ska få.
int optionType, giltiga värden är konstanter i
JOptionPane som symboliserar olika sorts knappar.
Icon icon, en möjlighet att explicit ange ikon.
Object[] selectionValues, om användaren inte ska skriva
i ett textfält utan välja i en lista anges listans värden på
detta sätt. Är det mindre än 20 värden används en
combo box i stället för en lista.
Object InitialSelectionValue, markerat i listan/combo boxen
eller skrivet i textfältet när dialogen dyker upp.
Object[] options, bör vara av typen String eller
Icon. Om så är skapas en knapp med angivet objekt på.
Object initialValue, anger vilken av ovanstående knappar
som har fokus när dialogen visas.
Till slut, hur får vi reda på vad användaren matat in
och vilken knapp hon/han tryckt på? Följande returtyper gäller
för de olika dialogerna:
Input: Den String användaren skrev i textfältet
eller ett Object som representerar det val som gjordes i listan/combo
boxen.
Confirm: En int som representerar en knapp med hjälp
av samma konstanter i JOptionPane som nämnts tidigare.
Message: Returnerar void.
Option: Returnerar antingen samma sorts knapp-int som för en
Confirm-dialog eller ett index till den array av knappar som gavs som inparameter
när dialogen skapades.
Om dialogen skapats med en statisk metod returneras ovan uppräknade objekt,
annars får det hämtas med metoden getValue().
PUH! Mycket mer reda i röran blir det inte. Slå en flukt i referensmanualen, (http://java.sun.com/products/jdk/1.4/docs/api/index.html), klassen JOptionPane i paketet javax.swing, eller titta på det här lilla exemplet: OptionPaneTest.java. Här är får du shiftklicka för att hämta bilden till exemplet: hif-log.gif.
En JFileChooser skickar ActionEvent när användaren tryckt på någon knapp. Här kommer ett exempel, SimpleFileChooser.java.