Heim  >  Artikel  >  Java  >  Wie erstelle ich mit JOptionPane ein Popup-Formular mit mehreren JTextFields und JLabels?

Wie erstelle ich mit JOptionPane ein Popup-Formular mit mehreren JTextFields und JLabels?

Susan Sarandon
Susan SarandonOriginal
2024-11-08 15:07:02686Durchsuche

How to Create a Popup Form with Multiple JTextFields and JLabels Using JOptionPane?

Verwenden mehrerer JTextFields und JLabels zum Anzeigen eines Popup-Formulars

Problem:

Die Anforderung eines Benutzers besteht darin, ein Popup anzuzeigen Formular, das beim Klicken auf die Schaltfläche mindestens zwei JTextFields und JLabels enthält, aber die Verwendung von JOptionPane.showInputDialog() ist keine akzeptable Lösung.

Antwort:

Erwägen Sie die Verwendung von JOptionPane Methoden wie showInputDialog() oder showMessageDialog() trotz der Anzahl der Komponenten.

Zusätzliche Überlegungen:

  • Die Auswahl von JOptionPane hängt eher von der erforderlichen Modalität ab als auf der Anzahl der angezeigten Elemente.
  • Durch die Anwendung des unter „Dialogfokus“ beschriebenen Ansatzes können Sie den Fokus auf eine bestimmte Komponente richten.

Beispielcode:

Der folgende Codeausschnitt demonstriert die Implementierung eines Popup-Formulars mithilfe eines JPanel, einer JComboBox und JTextFields mit JOptionPane.

import java.awt.EventQueue;
import java.awt.GridLayout;
import javax.swing.*;

class JOptionPaneTest {

    private static void display() {
        String[] items = {"One", "Two", "Three", "Four", "Five"};
        JComboBox<String> combo = new JComboBox<>(items);
        JTextField field1 = new JTextField("1234.56");
        JTextField field2 = new JTextField("9876.54");
        JPanel panel = new JPanel(new GridLayout(0, 1));
        panel.add(combo);
        panel.add(new JLabel("Field 1:"));
        panel.add(field1);
        panel.add(new JLabel("Field 2:"));
        panel.add(field2);
        int result = JOptionPane.showConfirmDialog(null, panel, "Test",
            JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
        if (result == JOptionPane.OK_OPTION) {
            System.out.println(combo.getSelectedItem()
                + " " + field1.getText()
                + " " + field2.getText());
        } else {
            System.out.println("Cancelled");
        }
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                display();
            }
        });
    }
}

Das obige ist der detaillierte Inhalt vonWie erstelle ich mit JOptionPane ein Popup-Formular mit mehreren JTextFields und JLabels?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn