Maison > Java > javaDidacticiel > le corps du texte

Comment créer un formulaire contextuel avec plusieurs champs en Java sans JOptionPane.showInputDialog() ?

Barbara Streisand
Libérer: 2024-11-07 08:26:03
original
583 Les gens l'ont consulté

How to Create a Popup Form with Multiple Fields in Java Without JOptionPane.showInputDialog()?

Formulaire contextuel simple avec plusieurs champs

Question :

Existe-t-il un moyen de créer un formulaire contextuel avec plusieurs champs sans utiliser JOptionPane.showInputDialog() ?

Réponse :

Envisagez d'utiliser les méthodes JOptionPane

Bien que l'utilisation des méthodes JOptionPane puisse être initialement rejetée en raison de l'hypothèse qu'elle est limitée à une ligne d'entrée, elle offre des options telles que showInputDialog() et showMessageDialog() qui peuvent prendre en charge des formulaires personnalisés.

Approche alternative

Pour une solution hautement personnalisée, considérez le code suivant :

package gui;

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

/** @see https://stackoverflow.com/a/3002830/230513 */
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

Considérations supplémentaires :

  • Personnalisation des formulaires à l'aide JOptionPane dépend de l'adéquation de la modalité plutôt que du nombre de composants.
  • Le focus peut être défini sur des composants spécifiques en faisant référence à Dialog Focus.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!