Meldingsdialogbokser er bra når du vil informere brukeren om en melding og få et enkelt svar (dvs. et JA- eller OK-klikk), men det er tidspunkter når du vil at brukeren skal gi litt data. Kanskje programmet ditt vil ha et popup-vindu for å hente navnet eller stjernetegnet. Dette kan oppnås enkelt ved å bruke
showInputDialog
metode for
JOptionPane
klasse.
JOptionPane-klassen
For å bruke
JOptionPaneklasse trenger du ikke lage et eksempel på en
JOptionPane
fordi det oppretter dialogbokser ved bruk av statiske metoder ogstatiske felt. Det oppretter bare modale dialogbokser som er greit for inndata-dialogbokser, fordi du generelt ønsker at brukeren skal legge inn noe før applikasjonen din fortsetter å kjøre.
De
showInputDialog
metoden er overbelastet flere ganger for å gi deg noen få alternativer for hvordan dialogboksen for inndata vises. Det kan ha et tekstfelt, en kombinasjonsboks eller en liste. Hver av disse komponentene kan ha en standardverdi valgt.
Inntastingsdialog med et tekstfelt
Den vanligste inndata-dialogen har ganske enkelt en melding, et tekstfelt for brukeren å legge inn svaret sitt og en OK-knapp:
De
showInputDialogmetoden tar seg av å bygge dialogvinduet, tekstfeltet og OK-knappen. Alt du trenger å gjøre er å gi foreldrekomponenten for dialogen og meldingen til brukeren. For foreldrekomponenten bruker jeg
dettenøkkelord for å peke på
JFramedialogen opprettes fra. Du kan bruke null eller spesifisere et navn på en annen beholder (f.eks.
JPanel) som foreldre. Å definere en overordnet komponent gjør det mulig for dialogen å plassere seg på skjermen i forhold til den overordnede. Hvis den er satt til null, vises dialogboksen midt på skjermen.
De
inngangsvariabel
fanger teksten brukeren legger inn i tekstfeltet.
Inngangsdialog med en kombinasjonsboks
For å gi brukeren et utvalg av valg fra en kombinasjonsboks, må du bruke en streng-matrise:
// Alternativer for kombinasjonsboksen Dialog [String []
valg = {"Mandag", "Tirsdag"
, "Onsdag", "Torsdag", "Fredag"};
// Inndatadialog med en kombinasjonsboks
Streng valgt = (String) JOptionPane.showInputDialog (dette, "Velg en dag:"
, "ComboBox Dialog", JOptionPane. QUESTION_MESSAGE
, null, valg, valg [0]);
Når jeg passerer en Strengarray for valgverdiene bestemmer metoden at en kombinasjonsboks er den beste måten å presentere disse verdiene for brukeren. Dette
showInputDialog
metoden returnerer en
Gjenstand
og fordi jeg ønsker å få tekstverdien til kombinasjonsboksen, har jeg definert returverdien til å være (
string
).
Legg også merke til at du kan bruke en av OptionPanes meldingstyper for å gi dialogboksen et visst preg. Dette kan overstyres hvis du passerer et ikon etter eget valg.
Inntastingsdialog med en liste
Hvis
stringmatrisen du passerer til.
showInputDialogmetoden har 20 eller flere oppføringer, i stedet for å bruke en kombinasjonsboks vil den bestemme seg for å vise valgverdiene i en listeboks.
Et fullstendig Java-kodeeksempel kan vises i Input Dialog Box Program. Hvis du er interessert i å se de andre dialogboksene som JOptionPane-klassen kan lage, kan du ta en titt på JOptionPane Option Chooser Program.