Meddelandedialogrutor är bra när du vill informera användaren om ett meddelande och få ett enkelt svar (dvs ett JA- eller OK-klick), men det finns tillfällen när du vill att användaren ska ge lite data. Kanske vill ditt program ha ett popup-fönster för att ta tag i deras namn eller stjärntecken. Detta kan uppnås enkelt genom att använda
showInputDialog
metod för
JOptionPane
klass.
JOptionPane-klassen
Att använda
JOptionPaneklass behöver du inte göra ett exempel på en
JOptionPane
eftersom det skapar dialogrutor genom användning av statiska metoder ochstatiska fält. Det skapar bara modala dialogrutor som är bra för inmatningsdialogrutor eftersom du i allmänhet vill att användaren ska mata in något innan din applikation fortsätter att köras.
De
showInputDialog
metoden överbelastas flera gånger för att ge dig några alternativ för hur dialogrutan för inmatning visas. Det kan ha ett textfält, en kombinationsruta eller en lista. Var och en av dessa komponenter kan ha ett standardvärde valt.
Inmatningsdialog med ett textfält
Den vanligaste inmatningsdialogen har helt enkelt ett meddelande, ett textfält för användaren att mata in sitt svar och en OK-knapp:
De
showInputDialogmetoden tar hand om att bygga dialogfönstret, textfältet och OK-knappen. Allt du behöver göra är att tillhandahålla överordnad komponent för dialogrutan och meddelandet till användaren. För den överordnade komponenten använder jag
dettanyckelord att peka på
JFramedialogen skapas från. Du kan använda null eller ange ett namn på en annan behållare (t.ex.
JPanel) som förälder. Att definiera en överordnad komponent gör det möjligt för dialogrutan att placera sig själv på skärmen i förhållande till dess överordnade. Om den är inställd på noll kommer dialogrutan att visas i mitten av skärmen.
De
ingångsvariabel
fångar den text som användaren skriver in i textfältet.
Inmatningsdialog med en kombinationsruta
För att ge användaren ett urval av val från en kombinationsruta måste du använda ett strängarray:
// Alternativ för dialogrutan i kombinationsrutan Sträng []
val = {"måndag", "tisdag"
,"Onsdag torsdag fredag"};
// Inmatningsdialogrutan med en kombinationsruta
Sträng vald = (String) JOptionPane.showInputDialog (detta, "Välj en dag:"
, "ComboBox Dialog", JOptionPane. QUESTION_MESSAGE
, null, val, val [0]);
När jag passerar en Stränguppsättning för valvärdena bestämmer metoden att en kombinationsruta är det bästa sättet att presentera dessa värden för användaren. Detta
showInputDialog
metod returnerar en
Objekt
och eftersom jag vill få textvärdet för valet av kombinationsrutan har jag definierat returvärdet som ett (
Sträng
).
Observera också att du kan använda en av OptionPanes meddelandetyper för att ge dialogrutan en viss känsla. Detta kan åsidosättas om du passerar en ikon som du väljer.
Inmatningsdialog med en lista
Om
Strängarray du passerar till.
showInputDialogmetoden har 20 eller fler poster, istället för att använda en kombinationsruta kommer den att välja valvärdena i en listruta.
Ett fullständigt exempel på Java-kod kan ses i programmet Input Dialog Box. Om du är intresserad av att se de andra dialogrutorna som klassen JOptionPane kan skapa, ta en titt på JOptionPane Option Chooser Program.