Een invoerdialoogvenster bouwen

Berichtdialoogvensters zijn geweldig als u de gebruiker over een bericht wilt informeren en een eenvoudig antwoord wilt krijgen (d.w.z. een JA of OK klik), maar er zijn momenten waarop u wilt dat de gebruiker een klein beetje gegevens verstrekt. Misschien wil uw programma een pop-upvenster om hun naam of sterrenbeeld te pakken. Dit kan eenvoudig worden bereikt met behulp van de

showInputDialog 

methode van de

JOptionPane 

klasse.

De JOptionPane-klasse

Om de

JOptionPane
klasse hoef je geen instantie van een te maken
JOptionPane

omdat het dialoogvensters creëert door het gebruik van statische methoden en statische velden. Het creëert alleen modale dialoogvensters, wat prima is voor invoerdialoogvensters, omdat u in het algemeen wilt dat de gebruiker iets invoert voordat uw toepassing actief blijft.

De

showInputDialog 

methode is meerdere keren overbelast om u een paar opties te geven over hoe het invoerdialoogvenster verschijnt. Het kan een tekstveld, een keuzelijst of een lijst hebben. Voor elk van deze componenten kan een standaardwaarde worden geselecteerd.

Invoerdialoogvenster met een tekstveld

Het meest voorkomende invoerdialoogvenster heeft eenvoudig een bericht, een tekstveld voor de gebruiker om zijn antwoord in te voeren en een OK-knop:

De

showInputDialog
methode zorgt voor het bouwen van het dialoogvenster, het tekstveld en de OK-knop. Het enige dat u hoeft te doen, is de bovenliggende component voor het dialoogvenster en het bericht aan de gebruiker verstrekken. Voor het bovenliggende onderdeel gebruik ik de
deze
zoekwoord om naar de
JFrame
het dialoogvenster is gemaakt van. U kunt null gebruiken of een naam van een andere container opgeven (bijv.,
JPanel
) als de ouder. Door een bovenliggend onderdeel te definiëren, kan het dialoogvenster zichzelf op het scherm positioneren ten opzichte van het bovenliggende onderdeel. Als deze op nul is ingesteld, verschijnt het dialoogvenster in het midden van het scherm.
De
ingangsvariabele

legt de tekst vast die de gebruiker in het tekstveld invoert.

Invoerdialoogvenster met een keuzelijst

Om de gebruiker een selectie uit een keuzelijst te geven, moet u een String-array gebruiken:

// Opties voor de keuzelijst dialoogString [] 
keuzes = "maandag", "dinsdag"
 ,"Woensdag donderdag vrijdag";
// Invoerdialoogvenster met een keuzelijst 
String pick = (String) JOptionPane.showInputDialog (dit, "Kies een dag:"
 , "ComboBox-dialoogvenster", JOptionPane.QUESTION_MESSAGE
 , nul, keuzes, keuzes [0]);

Omdat ik een String-array doorgeef voor de selectiewaarden, besluit de methode dat een keuzelijst de beste manier is om die waarden aan de gebruiker te presenteren. Deze

showInputDialog

methode retourneert een

Voorwerp

en omdat ik de tekstwaarde van de selectie van het keuzevak wil krijgen, heb ik de retourwaarde gedefinieerd als een (

Draad

).

Merk ook op dat u een van de berichttypen van OptionPane kunt gebruiken om het dialoogvenster een bepaald gevoel te geven. Dit kan worden opgeheven als u een pictogram van uw keuze doorgeeft.

Invoerdialoogvenster met een lijst

Als de

Draad
array die u doorgeeft aan de
showInputDialog 
methode heeft 20 of meer items dan in plaats van een keuzelijst te gebruiken, zal het besluiten om de selectiewaarden in een keuzelijst weer te geven.

Een volledig Java-codevoorbeeld kan worden bekeken in Input Dialog Box Program. Als je de andere dialoogvensters wilt zien die de klasse JOptionPane kan maken, bekijk dan het JOptionPane Option Chooser-programma.