Hovedfunktionen i en dialogboks er, at en applikation eller et websted kan hente input fra brugeren. Det input kan være en anerkendelse af, at de har læst en besked eller noget, de indtaster i et tekstområde.

En dialogboks fanger straks en brugers opmærksomhed. Det er et perfekt værktøj til at indsamle eller vise vigtig information.

Java er et forskelligartet sprog, der giver flere klasser til at skabe dialogbokse. Disse klasser inkluderer JOptionPane, JDialog og JFrame.

JOptionPane-klassen

Du kan oprette en standarddialogboks ved at bruge en af ​​flere statiske metoder, der tilhører JOptionPane-klassen. Disse omfatter:

  • showMessageDialog(), som videresender en besked til brugeren.
  • showConfirmDialog(), som stiller et spørgsmål, der kræver bekræftelse.
  • showInputDialog(), som beder en bruger om input.
  • showOptionDialog(), som er en kombination af de tre andre metoder.

Oprettelse af en JOptionPane-dialogboks

importere javax.swing. JFrame;
importere javax.swing. JOptionPane;

offentligklasseJOptionPaneApp

instagram viewer
{
JOptionPaneApp() {
JFrame ramme = ny JFrame();
JOptionPane.showMessageDialog (ramme, "Dette er et JOptionPane-meddelelsesvindue.");
}

offentligstatiskugyldigvigtigste(String[] args){
ny JOptionPaneApp();
}
}

Koden ovenfor skaber følgende dialogboks:

Selvom JOptionPane har standarddialogbokse, har den mange muligheder, der giver dig mulighed for at justere dens adfærd. For eksempel kan beskeddialogen have en af ​​flere typer. Ovenstående er et eksempel på en INFORMATION_MESSAGE, som er standard. De andre meddelelsestyper er:

  • FEJL BESKED
  • WARNING_MESSAGE
  • QUESTION_MESSAGE
  • PLAIN_MESSAGE

Oprettelse af en fejlmeddelelse

Her er et eksempel på, hvordan du bruger en anden meddelelsestype til din JOptionPane-dialog:

JOptionPane.showMessageDialog (ramme, "Dette er et JOptionPane-fejlmeddelelsesvindue.",
"Fejl", JOptionPane. FEJL BESKED);

Udskift showMessageDialog() linje i det originale program med kodelinjen ovenfor, og du vil se følgende fejldialog:

JDialog-klassen

JDialog-klassen lader dig oprette brugerdefinerede dialogbokse. Dette Java klasse hører til javax.swing pakke og udvider Dialog-klassen. Den har adgang til en bred vifte af direkte og indirekte metoder. Denne Java-klasse har i alt 16 Java konstruktører.

Bortset fra standardkonstruktøren tager hver af de 15 andre en ramme, et vindue eller en dialog med en kombination af flere andre argumenter.

De primære JDialog-konstruktører inkluderer:

  • JDialog() opretter en dialogboks uden en ramme, titel eller tilstand.
  • JDialog (dialogejer, strengtitel, boolesk modal) opretter en dialogboks med en dialogejer, en strengtitel og en tilstand.
  • JDialog (rammeejer, strengtitel, boolesk modal) opretter en dialogboks med en rammeejer, en strengtitel og en tilstand.
  • JDialog (vindueejer, strengtitel, boolesk modal) opretter en dialogboks med en vinduesejer, en strengtitel og en tilstand.

Oprettelse af en JDialog-dialogboks

importere java.awt. FlowLayout;
importere java.awt.event. ActionEvent;
importere java.awt.event. ActionListener;
importere javax.swing. JButton;
importere javax.swing. JDialog;
importere javax.swing. JFrame;
importere javax.swing. JLabel;
importere javax.swing. vindueskonstanter;

offentligklasseJDialogApp{
JDialogApp() {
JFrame ramme = ny JFrame();
JDialog dialog = ny JDialog (ramme, rigtigt);
dialog.setLayout(ny FlowLayout());

JLabel displayText = ny JLabel("Dette er et JDialog-vindue.");
JButton btn = ny JButton("OK");

btn.addActionListener(ny ActionListener() {
offentligugyldighandlingUdført(ActionEvent e){
dialog.setVisible(falsk);
}
});

dialog.add (displayTekst);
dialog.add (btn);

dialog.setSize(200,150);
dialog.setTitle("Dialogvindue");
dialog.setVisible(rigtigt);
dialog.setDefaultCloseOperation (WindowConstants. DISPOSE_ON_CLOSE);
}

offentligstatiskugyldigvigtigste(String args[]){
ny JDialogApp();
}
}

Koden ovenfor skaber følgende dialogboks:

Der er flere vigtige aspekter af koden, som du bør bemærke. Programmet bruger JDialog (Rammeejer, boolesk modal) konstruktør, som den videregiver en JFrame og den "sande" værdi som argumenter. JFrame er ejeren af ​​JDialog, hvilket betyder, at den er ansvarlig for at vise dialogboksen. Den "sande" værdi betyder, at dialogboksen blokerer input til andre relaterede vinduer, når den vises.

Konstruktøren i koden ovenfor tager ikke en titel som sit argument. Dog skal rammeejeren have en titel. Så til den opgave kan du bruge setTitle() metode, som er tilgængelig gennem Dialog-klassen, som JDialog udvider. De andre vigtige metoder i koden er setVisible(), setSize(), og setDefaultCloseOperation().

setVisible tager en boolsk værdi og er ansvarlig for at vise rammen. setSize tager højden og bredden af ​​dialogvinduet. setDefaultCloseOperation tager en af ​​tre værdier til at bestemme, hvad der sker, når en bruger lukker dialogen.

JFrame-klassen

JDialog og JOptionPane bruger begge JFrame-klassen til at oprette dialogbokse. Men JFrame-klassen kan oprette dialogbokse alene. JFrame-klassen udvider Frame-klassen og, ligesom JDialog-klassen, giver den dig mulighed for at oprette brugerdefinerede dialogbokse.

JFrame har fire konstruktører og flere direkte og indirekte metoder, som du skal bruge for at oprette en dialogboks.

Oprettelse af en JFrame-dialogboks

importere java.awt.event. ActionEvent;
importere java.awt.event. ActionListener;

importere javax.swing. JButton;
importere javax.swing. JFrame;
importere javax.swing. JLabel;
importere javax.swing. JPanel;
importere javax.swing. vindueskonstanter;

offentligklasseJFrameApp{
JFrameApp() {
JFrame ramme = ny JFrame();
frame.setTitle("Dialogvindue");
JPanel panel = ny JPanel();

JLabel displayText = ny JLabel("Dette er et JFrame-vindue.");
panel.add (displaytekst);
JButton btn = ny JButton("OK-knap");

btn.addActionListener(ny ActionListener() {
offentligugyldighandlingUdført(ActionEvent e){
frame.setVisible(falsk);
}
});

panel.add (btn);

frame.add (panel);
frame.setDefaultCloseOperation (WindowConstants. EXIT_ON_CLOSE);
frame.setSize(250, 150);
frame.setVisible(rigtigt);
}

offentligstatiskugyldigvigtigste(String[] args){
ny JFrameApp();
}
}

Koden ovenfor skaber følgende dialogboks:

Koden bruger standard JFrame-konstruktøren og flere velkendte metoder, såsom setTitle() metode (brugt i JDialog-appen ovenfor). Et ukendt objekt i programmet ovenfor er JPanel, som er en generisk beholder. Dette giver JFrame fleksibiliteten til at tilføje flere layouts og komponenter til en ramme.

Det ActionListener() og actionPerformed() metoder håndterer hændelsen, hvor en bruger klikker på Okay knap.

Hvilken Java-klasse er bedst til at oprette dialogbokse?

Det eneste formål med JOptionPane-klassen er at gøre processen til oprettelse af dialogbokse mere bekvem for Java-udviklere. Men hvis du har brug for en mere tilpasset dialogboks, er JDialog-klassen den næstbedste mulighed.

JFrame-klassen opretter UI'er, men du kan bruge den til at skabe mange forskellige elementer i en GUI, inklusive dialogbokse.

Dialogboksen oprettet med JFrame-klassen har et minimeret ikon, mens de andre ikke har. Hvis du ønsker en modal dialogboks, som brugeren skal handle, før han fuldfører en opgave, så er JFrame ikke den bedste tilgang.

Sådan skriver du din første Java GUI-applikation 

Læs Næste

DelTweetDelE-mail

Relaterede emner

  • Programmering
  • Programmering
  • Java
  • Kodningsvejledninger

Om forfatteren

Kadeisha Kean (56 artikler udgivet)

Kadeisha Kean er fuld stack softwareudvikler og teknisk/teknologiskribent. Hun har den udprægede evne til at forenkle nogle af de mest komplekse teknologiske begreber; producere materiale, der let kan forstås af enhver nybegynder teknologi. Hun brænder for at skrive, udvikle interessant software og rejse verden rundt (gennem dokumentarer).

Mere fra Kadeisha Kean

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!

Klik her for at abonnere