Maison  >  Article  >  Java  >  Comment créer un formulaire contextuel avec plusieurs JTextFields et JLabels à l'aide de JOptionPane ?

Comment créer un formulaire contextuel avec plusieurs JTextFields et JLabels à l'aide de JOptionPane ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-08 15:07:02769parcourir

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

Utilisation de plusieurs JTextFields et JLabels pour afficher un formulaire contextuel

Problème :

L'exigence d'un utilisateur est de présenter une fenêtre contextuelle formulaire contenant au moins deux JTextFields et JLabels lors d'un clic sur le bouton, mais l'utilisation de JOptionPane.showInputDialog() n'est pas une solution acceptable.

Réponse :

Envisagez d'utiliser JOptionPane des méthodes comme showInputDialog() ou showMessageDialog() malgré le nombre de composants.

Considérations supplémentaires :

  • La sélection de JOptionPane dépend davantage de la modalité requise que sur le nombre d'éléments affichés.
  • En employant l'approche décrite dans « Dialog Focus », vous pouvez diriger le focus sur un composant spécifique.

Exemple de code :

L'extrait de code suivant démontre l'implémentation d'un formulaire contextuel utilisant un JPanel, un JComboBox et un JTextFields avec 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();
            }
        });
    }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn