Dialogfelder sind Tools, die interaktive Modi für Dialogprozesse für Menschenkomputer bereitstellen. Die Anwendung bietet dem Benutzer entweder Informationen über ein Dialogfeld oder erhält Informationen vom Benutzer. Ein Dialogfeld ist ein temporäres Fenster, in dem Sie Steuerelemente für die Eingabe von Benutzern platzieren können. Bei Swing gibt es zwei Dialogklassen, nämlich die JDIALOG -Klasse und die JoptionPane -Klasse. Die JDIALOG-Klasse bietet die Konstruktion und Verwaltung gemeinsamer Dialogfelder.
JDIALOG -Klasse
Die JDIALOG -Klasse dient als Basisklasse für das Dialogfeld. Dialogfelder unterscheiden sich von allgemeinen Fenstern.
Dialogfelder sind in obligatorische und nicht wesentliche Unterlagen unterteilt. Das obligatorische Dialogfeld kann den Dialogvorgang erst dann unterbrechen, wenn das Dialogfeld fertig ist, und das Programm reagiert nicht auf Ereignisse außerhalb des Dialogfelds. Ein Dialogfeld ohne Mandatory kann den Dialogprozess unterbrechen und auf Ereignisse außerhalb des Dialogfelds reagieren. Der erzwungene Typ wird auch als Modus-Dialogfeld bezeichnet, und das Dialogfeld "Nicht erzwungen" wird auch als Dialogfeld "Nicht-Mode" bezeichnet.
JDIALOG -Objekte sind auch ein Container, sodass Sie dem Dialogfeld JDialog auch einen Layout -Manager zuweisen können. Komponenten können jedoch nicht direkt zum Dialogfeld hinzugefügt werden. Da ein Dialogfeld von einem Fenster abhängt, um einen Dialog zu erstellen, müssen Sie zunächst ein Fenster erstellen.
Es gibt 3 häufig verwendete Konstruktoren für die JDIALOG -Klasse:
Es gibt mehrere andere gemeinsame Methoden der JDIALOG -Klasse:
[Beispiel] Das Applet deklariert eine Benutzerfensterklasse und eine Dialogfeldklasse. Das Benutzerfenster enthält zwei Tasten und zwei Textfelder. Geben Sie die entsprechenden Informationen im Dialogfeld ein und drücken Sie die Taste OK im Dialogfeld. Bestimmen Sie die Überwachungsmethode der Schaltfläche, übertragen Sie die im Dialogfeld eingegebenen Informationen in das Benutzerfenster und zeigen Sie die Auswahlinformationen im entsprechenden Textfeld des Benutzerfensters an.
Java.applet importieren. private statische JTextField Text1, myWindow (String) {Super (s); (100.100) = jTEXTFIELD (20); statische void retur nname (string s) {if (flg == 1) text1.setText ("Die ausgewählte Frucht ist:"+s); +s); 1; JLABEL -Titel; Name "); text = new JTextField (10); text.seteditable (true); con.setLayout (new FlowLayout ()); con.setSize (200.100); setModal (false); Done = new Jbutton (" OK ") ; ;Das obige Beispiel erstellt ein obligatorisches Dialogfeld. Auf diese Weise können Sie den Effekt einiger Dialoge in der Schnittstelle sehen.
Ändern Sie das obige Beispiel mit nur geringer Anzahl von Änderungen in ein Dialogfeld "Nicht-Mandatory". Ändern Sie zunächst den Code "Super (f, s, wahr);
Die zweite Änderung: Es stellt sich heraus, dass die Methode returnName () aufgerufen wird, wenn sie auf das Ereignis der Bestätigungsschaltfläche reagiert und die vom Dialogfeld erhaltene Zeichenfolge an das Programm zurückgegeben wird. Wenn nun das Textfeld -Eingangsauswahlzeichenfolge endet, sollte die Methode sofort aufgerufen werden. Dazu müssen Sie die Eingabeereignisse im Textfeld überwachen und den Monitor für den Text registrieren:
public void actionPerformed (actionEvent e) {if (e.getSource () == text) {myWindow.returnname (text.getText ()); Text .GETTEXT ());JOPTIONPANE -Klasse
Es wird häufig sehr einfache Dialogsituationen auftreten, um die Programmierung gemeinsamer Dialogfelder zu vereinfachen, die JOPTIONPANE-Klasse definiert vier einfache Dialogfelder, siehe Tabelle 11-4. Die JoptionPane -Klasse bietet eine Reihe statischer Methoden, mit denen Benutzer ein bestimmtes Dialogfeldstyp auswählen können. Der folgende Code ist das Dialogfeld Überprüfen Sie das Dialogfeld:
int result = joptionpane.showConFirMdialog (übergeordnet, "Willst du wirklich beenden?", "Exit bestätigen", joptionpane.yes_no_cancel_option);
Der Text "Bestätigung" im mittleren Teil des Method -Namens ist der Typ des Erstellens eines Dialogfelds, und der Textbestätigung gibt an, dass das Dialogfeld Bestätigungsdialogfeld ausgewählt ist. Ändern Sie den Text bestätigen in einem der anderen drei Typen und werden zum entsprechenden Typ -Dialogfeld. Die Bedeutung der vier Parameter des obigen Code ist: Der erste Parameter gibt das übergeordnete Fenster dieses Dialogfelds an Gibt an, dass das Dialogfeld drei enthält. Die Schaltflächen sind "Ja (y)," Nein (n) und "rückgängig". Das Rückgabeergebnis der Methode ist das Ergebnis des Benutzer, der auf dieses Dialogfeld reagiert, siehe die möglichen Antworten in Tabelle 11-5.
Das Dialogfeld Eingabe fordert den Benutzer an, Auswahlinformationen in Form einer Liste oder eines Textfelds einzugeben. Hier ist ein schematischer Code für ein Eingabedialogfeld, in dem ein ausgeführtes Projekt aus der Liste ausgewählt wird:
String result = (String) joptionpane.showInputDialog (übergeordnet, "Bitte wählen Sie einen Sport", "Dies ist das Dialogfeld" Sportauswahl ", joptionpane.question_message, null, neues Objekt [] {" Fußball spielen "," Basketball spielen "," Basketball spielen "," Basketball spielen "," Basketball spielen "," Basketball spielen "," rennen “,„ Jump -Seil “},„ Running “); Der vierte Parameter ist der Informationstyp, der fünfte Parameter hat hier keinen Spezialeffekt und ist immer null. Das Dialogfeld enthält auch die Tasten OK und rückgängig.
JoptionPane -Dialogfeld Typtyp
Ergebnisse, die im Dialogfeld JoptionPane zurückgegeben wurden
Informationen Typoptionen für das Dialogfeld JoptionPane
Manchmal gibt das Programm einfach einige Informationen aus und erfordert nicht, dass der Benutzer ein Feedback hat. Ein solches Dialogfeld kann mit der folgenden Codeform erstellt werden:
JOPTIONPANE.SHOWMESSAGEDIALOG (übergeordnet, "Dies ist ein Java -Programm", "Ich bin das Dialogfeld" Ich bin das Dialogfeld "Informationen", "JoptionPane.plain_Message");
Die Bedeutung der ersten drei Parameter im obigen Code ist derselbe wie oben beschrieben, und der endgültige Parameter ist, dass der Informationstyp so angegeben ist, dass keine Symbole enthalten sind.