Maison > Java > javaDidacticiel > 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
Libérer: 2024-11-08 15:07:02
original
851 Les gens l'ont consulté

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();
            }
        });
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal