Die Hauptfunktion eines Dialogfelds besteht darin, dass eine Anwendung oder Website einige Eingaben vom Benutzer abruft. Diese Eingabe kann eine Bestätigung sein, dass sie eine Nachricht gelesen haben, oder etwas, das sie in einen Textbereich eingeben.
Ein Dialogfeld zieht sofort die Aufmerksamkeit eines Benutzers auf sich. Es ist ein perfektes Werkzeug zum Sammeln oder Anzeigen wichtiger Informationen.
Java ist eine vielfältige Sprache, die mehrere Klassen zum Erstellen von Dialogfeldern bereitstellt. Zu diesen Klassen gehören JOptionPane, JDialog und JFrame.
Die JOptionPane-Klasse
Sie können ein Standarddialogfeld mit einer von mehreren statischen Methoden erstellen, die zur JOptionPane-Klasse gehören. Diese beinhalten:
- showMessageDialog(), die eine Nachricht an den Benutzer weiterleitet.
- showConfirmDialog(), das eine Frage stellt, die bestätigt werden muss.
- showInputDialog(), die einen Benutzer zur Eingabe auffordert.
- showOptionDialog(), die eine Kombination der drei anderen Methoden ist.
Erstellen eines JOptionPane-Dialogfelds
importieren javax.swing. JRahmen;
importieren javax.swing. JOptionPane;öffentlichKlasseJOptionPaneApp{
JOptionPaneApp() {
JFrame Rahmen = Neu JFrame();
JOptionPane.showMessageDialog (Frame, "Dies ist ein JOptionPane-Nachrichtenfenster.");
}
öffentlichstatischLeerehauptsächlich(String[] Argumente){
Neu JOptionPaneApp();
}
}
Der obige Code erstellt das folgende Dialogfeld:
Obwohl JOptionPane Standarddialogfelder bietet, hat es viele Optionen, mit denen Sie sein Verhalten optimieren können. Beispielsweise kann der Nachrichtendialog einen von mehreren Typen annehmen. Das obige ist ein Beispiel für eine INFORMATION_MESSAGE, was die Voreinstellung ist. Die anderen Nachrichtentypen sind:
- FEHLERMELDUNG
- WARNMELDUNG
- QUESTION_MESSAGE
- PLAIN_MESSAGE
Erstellen einer Fehlermeldung
Hier ist ein Beispiel dafür, wie Sie einen anderen Nachrichtentyp für Ihren JOptionPane-Dialog verwenden:
JOptionPane.showMessageDialog (Frame, "Dies ist ein JOptionPane-Fehlermeldungsfenster.",
"Fehler", JOptionPane. FEHLERMELDUNG);
Ersetze das showMessageDialog() Zeile im ursprünglichen Programm mit der obigen Codezeile, und Sie sehen den folgenden Fehlerdialog:
Die JDialog-Klasse
Mit der JDialog-Klasse können Sie benutzerdefinierte Dialogfelder erstellen. Das Java-Klasse gehört zu den javax.swing Paket und erweitert die Dialog-Klasse. Es hat Zugriff auf eine Vielzahl direkter und indirekter Methoden. Diese Java-Klasse hat insgesamt 16 Java-Konstruktoren.
Abgesehen vom Standardkonstruktor nimmt jeder der 15 anderen einen Rahmen, ein Fenster oder einen Dialog mit einer Kombination aus mehreren anderen Argumenten.
Zu den primären JDialog-Konstruktoren gehören:
- JDialog() erstellt ein Dialogfeld ohne Rahmen, Titel oder Modus.
- JDialog (Dialogeigentümer, String-Titel, boolescher Modalwert) erstellt ein Dialogfeld mit einem Dialog-Eigentümer, einem Zeichenfolgentitel und einem Modus.
- JDialog (Frame-Eigentümer, String-Titel, boolescher Modalwert) erstellt ein Dialogfeld mit einem Rahmenbesitzer, einem Zeichenfolgentitel und einem Modus.
- JDialog (Fensterbesitzer, Stringtitel, boolescher Modalwert) erstellt ein Dialogfeld mit einem Fensterbesitzer, einem Zeichenfolgentitel und einem Modus.
Erstellen eines JDialog-Dialogfelds
importieren java.awt. FlussLayout;
importieren java.awt.event. Aktionsereignis;
importieren java.awt.event. ActionListener;
importieren javax.swing. JButton;
importieren javax.swing. JDialog;
importieren javax.swing. JRahmen;
importieren javax.swing. JLabel;
importieren javax.swing. WindowConstants;öffentlichKlasseJDialogApp{
JDialogApp() {
JFrame Rahmen = Neu JFrame();
JDialogdialog = Neu JDialog (Rahmen, wahr);
dialog.setLayout(Neu FlowLayout());JLabel displayText = Neu JLabel("Dies ist ein JDialog-Fenster.");
JButton btn = Neu JButton("OK");btn.addActionListener(Neu ActionListener() {
öffentlichLeereHandlung ausgeführt(Aktionsereignis e){
dialog.setVisible(FALSCH);
}
});dialog.add (AnzeigeText);
dialog.add (btn);dialog.setSize(200,150);
dialog.setTitle("Dialogfenster");
dialog.setVisible(wahr);
dialog.setDefaultCloseOperation (WindowConstants. DISPOSE_ON_CLOSE);
}
öffentlichstatischLeerehauptsächlich(String-Argumente[]){
Neu JDialogApp();
}
}
Der obige Code erstellt das folgende Dialogfeld:
Es gibt mehrere wichtige Aspekte des Codes, die Sie beachten sollten. Das Programm verwendet die JDialog (Frame-Eigentümer, boolescher Modalwert) Konstruktor, an den es a übergibt JFrame und der „wahre“ Wert als Argumente. Der JFrame ist der Eigentümer des JDialog, was bedeutet, dass er für die Anzeige des Dialogfelds verantwortlich ist. Der Wert „true“ bedeutet, dass der Dialog Eingaben in andere verwandte Fenster blockiert, wenn er angezeigt wird.
Der Konstruktor im obigen Code akzeptiert keinen Titel als Argument. Allerdings benötigt der Rahmenbesitzer einen Titel. Für diese Aufgabe können Sie also die verwenden setTitle() -Methode, die über die Dialog-Klasse verfügbar ist, die JDialog erweitert. Die anderen wichtigen Methoden im Code sind setVisible(), setSize(), und setDefaultCloseOperation().
setVisible nimmt einen booleschen Wert und ist für die Anzeige des Frames verantwortlich. setSize übernimmt die Höhe und Breite des Dialogfensters. setDefaultCloseOperation akzeptiert einen von drei Werten, um zu entscheiden, was passiert, wenn ein Benutzer den Dialog schließt.
Die JFrame-Klasse
JDialog und JOptionPane verwenden beide die JFrame-Klasse, um Dialogfelder zu erstellen. Die JFrame-Klasse kann jedoch selbst Dialogfelder erstellen. Die JFrame-Klasse erweitert die Frame-Klasse und ermöglicht Ihnen, ähnlich wie die JDialog-Klasse, benutzerdefinierte Dialogfelder zu erstellen.
JFrame hat vier Konstruktoren und mehrere direkte und indirekte Methoden, die Sie verwenden müssen, um ein Dialogfeld zu erstellen.
Erstellen eines JFrame-Dialogfelds
importieren java.awt.event. Aktionsereignis;
importieren java.awt.event. ActionListener;importieren javax.swing. JButton;
importieren javax.swing. JRahmen;
importieren javax.swing. JLabel;
importieren javax.swing. JPanel;
importieren javax.swing. WindowConstants;öffentlichKlasseJFrameApp{
JFrameApp() {
JFrame Rahmen = Neu JFrame();
frame.setTitle("Dialogfenster");
JPanel-Panel = Neu JPanel();JLabel displayText = Neu JLabel("Dies ist ein JFrame-Fenster.");
panel.add (Anzeigetext);
JButton btn = Neu JButton("OK-Button");btn.addActionListener(Neu ActionListener() {
öffentlichLeereHandlung ausgeführt(Aktionsereignis e){
frame.setVisible(FALSCH);
}
});panel.add (btn);
frame.add (Panel);
frame.setDefaultCloseOperation (WindowConstants. EXIT_ON_CLOSE);
frame.setSize(250, 150);
frame.setVisible(wahr);
}
öffentlichstatischLeerehauptsächlich(String[] Argumente){
Neu JFrameApp();
}
}
Der obige Code erstellt das folgende Dialogfeld:
Der Code verwendet den standardmäßigen JFrame-Konstruktor und mehrere bekannte Methoden, wie z setTitle() -Methode (wird oben in der JDialog-App verwendet). Ein unbekanntes Objekt im obigen Programm ist die JPanel, bei dem es sich um einen generischen Container handelt. Dies gibt JFrame die Flexibilität, mehrere Layouts und Komponenten zu einem Frame hinzuzufügen.
Das ActionListener() und Handlung ausgeführt() Methoden verarbeiten das Ereignis, wenn ein Benutzer auf die klickt OK Taste.
Welche Java-Klasse eignet sich am besten zum Erstellen von Dialogfeldern?
Der einzige Zweck der JOptionPane-Klasse besteht darin, den Erstellungsprozess für Dialogfelder für Java-Entwickler bequemer zu gestalten. Wenn Sie jedoch ein benutzerdefinierteres Dialogfeld benötigen, ist die JDialog-Klasse die nächstbeste Option.
Die JFrame-Klasse erstellt UIs, aber Sie können sie verwenden, um viele verschiedene Elemente einer GUI zu erstellen, einschließlich Dialogfelder.
Das mit der JFrame-Klasse erstellte Dialogfeld hat ein minimiertes Symbol, die anderen nicht. Wenn Sie ein modales Dialogfeld wünschen, das der Benutzer vor Abschluss einer Aufgabe ausführen muss, ist JFrame nicht der beste Ansatz.
So schreiben Sie Ihre erste Java-GUI-Anwendung
Lesen Sie weiter
Verwandte Themen
- Programmierung
- Programmierung
- Java
- Coding-Tutorials
Über den Autor
Kadeisha Kean ist ein Full-Stack-Softwareentwickler und technischer/Technologie-Autor. Sie hat die ausgeprägte Fähigkeit, einige der komplexesten technologischen Konzepte zu vereinfachen; Material zu produzieren, das von jedem Technologieneuling leicht verstanden werden kann. Sie schreibt leidenschaftlich gerne, entwickelt interessante Software und bereist die Welt (durch Dokumentarfilme).
Abonnieren Sie unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um sich anzumelden