De belangrijkste functie van een dialoogvenster is dat een toepassing of website enige invoer van de gebruiker ophaalt. Die invoer kan een bevestiging zijn dat ze een bericht hebben gelezen of iets dat ze in een tekstgebied invoeren.
Een dialoogvenster trekt onmiddellijk de aandacht van een gebruiker. Het is een perfect hulpmiddel voor het verzamelen of weergeven van belangrijke informatie.
Java is een diverse taal die verschillende klassen biedt om dialoogvensters te maken. Deze klassen omvatten JOptionPane, JDialog en JFrame.
De JOptionPane-klasse
U kunt een standaarddialoogvenster maken met behulp van een van de verschillende statische methoden die tot de JOptionPane-klasse behoren. Waaronder:
- showMessageDialog(), die een bericht doorstuurt naar de gebruiker.
- showConfirmDialog(), die een vraag stelt die bevestiging vereist.
- showInputDialog(), die een gebruiker om invoer vraagt.
- showOptionDialog(), wat een combinatie is van de drie andere methoden.
Een JOptionPane-dialoogvenster maken
importeren javax.swing. JFrame;
importeren javax.swing. JOptionPaan;openbaarklasJOptionPaneApp{
JOptionPaneApp() {
JFrameframe = nieuwe JFrame();
JOptionPane.showMessageDialog (frame, "Dit is een JOptionPane-berichtvenster.");
}
openbaarstatischleegtehoofd(String[] argumenten){
nieuwe JOptionPaneApp();
}
}
De bovenstaande code creëert het volgende dialoogvenster:
Hoewel JOptionPane standaard dialoogvensters biedt, heeft het veel opties waarmee u het gedrag ervan kunt aanpassen. Het berichtvenster kan bijvoorbeeld een van de verschillende typen hebben. De bovenstaande is een voorbeeld van een INFORMATION_MESSAGE, wat de standaard is. De andere berichttypen zijn:
- ERROR_MESSAGE
- WAARSCHUWINGSBERICHT
- QUESTION_MESSAGE
- PLAIN_MESSAGE
Een foutmelding maken
Hier is een voorbeeld van hoe u een ander berichttype kunt gebruiken voor uw JOptionPane-dialoogvenster:
JOptionPane.showMessageDialog (frame, "Dit is een JOptionPane-foutberichtvenster.",
"Fout", JOptionPane. ERROR_MESSAGE);
Vervang de showMessageDialog() regel in het originele programma met de regel code hierboven, en u ziet het volgende foutdialoogvenster:
De JDialog-klasse
Met de klasse JDialog kunt u aangepaste dialoogvensters maken. Deze Java-klasse behoort tot de javax.swing pakket en breidt de Dialog-klasse uit. Het heeft toegang tot een breed scala aan directe en indirecte methoden. Deze Java-klasse heeft in totaal 16 Java-constructors.
Afgezien van de standaardconstructor, neemt elk van de 15 andere een frame, een venster of een dialoogvenster met een combinatie van verschillende andere argumenten.
De primaire JDialog Constructors omvatten:
- JDialog() maakt een dialoogvenster zonder frame, titel of modus.
- JDialog (eigenaar van dialoog, stringtitel, boolean modaal) maakt een dialoogvenster met een Dialog-eigenaar, een tekenreekstitel en een modus.
- JDialog (Frame-eigenaar, stringtitel, booleaans modaal) maakt een dialoogvenster met een frame-eigenaar, een tekenreekstitel en een modus.
- JDialog (venstereigenaar, tekenreekstitel, boolean modaal) maakt een dialoogvenster met een venstereigenaar, een tekenreekstitel en een modus.
Een JDialog-dialoogvenster maken
importeren java.awt. Stroomindeling;
importeren java.awt.event. ActieEvent;
importeren java.awt.event. ActieLuisteraar;
importeren javax.swing. JKnop;
importeren javax.swing. JDialoogvenster;
importeren javax.swing. JFrame;
importeren javax.swing. JLabel;
importeren javax.swing. VensterConstanten;openbaarklasJDialogApp{
JDialogApp() {
JFrameframe = nieuwe JFrame();
JDialog dialoog = nieuwe JDialog (frame, WAAR);
dialoog.setLayout(nieuwe FlowLayout());JLabel displayText = nieuwe JLabel("Dit is een JDialog-venster.");
JKnop btn = nieuwe JKnop("OK");btn.addActionListener(nieuwe ActieListener() {
openbaarleegteactie uitgevoerd(ActieEvenement e){
dialoog.setVisible(vals);
}
});dialog.add (displayText);
dialoog.add (btn);dialoog.setSize(200,150);
dialog.setTitle("Dialoogvenster");
dialoog.setVisible(WAAR);
dialog.setDefaultCloseOperation (WindowConstants. DISPOSE_ON_CLOSE);
}
openbaarstatischleegtehoofd(Tekenreeksargumenten[]){
nieuwe JDialogApp();
}
}
De bovenstaande code creëert het volgende dialoogvenster:
Er zijn verschillende belangrijke aspecten van de code waar u op moet letten. Het programma gebruikt de JDialog (Frame-eigenaar, Booleaans modaal) constructor, waaraan het gaat a JFrame en de "true" waarde als argumenten. Het JFrame is de eigenaar van de JDialog, wat betekent dat het verantwoordelijk is voor het weergeven van het dialoogvenster. De waarde "true" betekent dat het dialoogvenster invoer naar andere gerelateerde vensters blokkeert wanneer het wordt weergegeven.
De constructor in de bovenstaande code neemt geen titel als argument. De frame-eigenaar heeft echter een titel nodig. Dus voor die taak kun je de setTitle() methode, die beschikbaar is via de Dialog-klasse die JDialog uitbreidt. De andere belangrijke methoden in de code zijn: setVisible(), setSize(), en setDefaultCloseOperation().
setVisible heeft een Booleaanse waarde en is verantwoordelijk voor het weergeven van het frame. setSize neemt de hoogte en breedte van het dialoogvenster. setDefaultCloseOperation neemt een van de drie waarden om te beslissen wat er gebeurt als een gebruiker het dialoogvenster sluit.
De JFrame-klasse
JDialog en JOptionPane gebruiken beide de JFrame-klasse om dialoogvensters te maken. De klasse JFrame kan echter zelf dialoogvensters maken. De klasse JFrame breidt de klasse Frame uit en, net als de klasse JDialog, kunt u aangepaste dialoogvensters maken.
JFrame heeft vier constructors en verschillende directe en indirecte methoden die u moet gebruiken om een dialoogvenster te maken.
Een JFrame-dialoogvenster maken
importeren java.awt.event. ActieEvent;
importeren java.awt.event. ActieLuisteraar;importeren javax.swing. JKnop;
importeren javax.swing. JFrame;
importeren javax.swing. JLabel;
importeren javax.swing. JPanel;
importeren javax.swing. VensterConstanten;openbaarklasJFrameApp{
JFrameApp() {
JFrameframe = nieuwe JFrame();
frame.setTitle("Dialoogvenster");
JPanel paneel = nieuwe JPanel();JLabel displayText = nieuwe JLabel("Dit is een JFrame-venster.");
panel.add (displayText);
JKnop btn = nieuwe JButton("OK-knop");btn.addActionListener(nieuwe ActieListener() {
openbaarleegteactie uitgevoerd(ActieEvenement e){
frame.setVisible(vals);
}
});paneel.add (btn);
frame.add (paneel);
frame.setDefaultCloseOperation (WindowConstants. EXIT_ON_CLOSE);
frame.setSize(250, 150);
frame.setVisible(WAAR);
}
openbaarstatischleegtehoofd(String[] argumenten){
nieuwe JFrameApp();
}
}
De bovenstaande code creëert het volgende dialoogvenster:
De code gebruikt de standaard JFrame-constructor en verschillende bekende methoden, zoals de setTitle() methode (gebruikt in de JDialog-app hierboven). Een onbekend object in bovenstaand programma is de JPanel, wat een generieke container is. Dit geeft JFrame de flexibiliteit om meerdere lay-outs en componenten aan een frame toe te voegen.
De ActieListener() en actie uitgevoerd() methoden behandelen de gebeurtenis van een gebruiker die op de klikt Oké knop.
Welke Java-klasse is het beste voor het maken van dialoogvensters?
Het enige doel van de JOptionPane-klasse is om het proces voor het maken van dialoogvensters handiger te maken voor Java-ontwikkelaars. Als u echter een meer aangepast dialoogvenster nodig hebt, is de JDialog-klasse de op één na beste optie.
De klasse JFrame maakt gebruikersinterfaces, maar u kunt deze gebruiken om veel verschillende elementen van een GUI te maken, inclusief dialoogvensters.
Het dialoogvenster dat is gemaakt met de JFrame-klasse heeft een geminimaliseerd pictogram, terwijl de andere dat niet hebben. Als u een modaal dialoogvenster wilt, dat de gebruiker moet doen voordat hij een taak voltooit, dan is JFrame niet de beste aanpak.
Hoe u uw eerste Java GUI-toepassing schrijft
Lees volgende
Gerelateerde onderwerpen
- Programmeren
- Programmeren
- Java
- Codeerhandleidingen
Over de auteur
Kadeisha Kean is een full-stack softwareontwikkelaar en technisch/technologisch schrijver. Ze heeft het onmiskenbare vermogen om enkele van de meest complexe technologische concepten te vereenvoudigen; materiaal produceren dat gemakkelijk kan worden begrepen door elke nieuwe technologie-beginner. Ze is gepassioneerd door schrijven, interessante software ontwikkelen en de wereld rondreizen (via documentaires).
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Klik hier om je te abonneren