Maison > Java > javaDidacticiel > Comment changer dynamiquement les éléments de l'interface utilisateur en fonction de la sélection de la zone de liste déroulante ?

Comment changer dynamiquement les éléments de l'interface utilisateur en fonction de la sélection de la zone de liste déroulante ?

Susan Sarandon
Libérer: 2024-11-03 11:16:02
original
266 Les gens l'ont consulté

How to Dynamically Switch UI Elements Based on Combo Box Selection?

Changer dynamiquement les éléments de l'interface utilisateur en fonction de la sélection de la zone de liste déroulante

Dans une boîte de dialogue, vous devez afficher des ensembles spécifiques de contrôles en fonction de la sélection réalisé dans une combo box. Ceci est réalisé en utilisant plusieurs calques et en basculant entre eux lorsque la zone de liste déroulante est cochée ou décochée.

CardLayout pour la superposition de contrôle

Le CardLayout est une solution efficace pour cela scénario. Il vous permet d'avoir plusieurs panneaux, appelés « cartes », et d'en afficher un seul à la fois en modifiant la disposition.

L'extrait de code suivant montre comment implémenter cela :

<code class="java">import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class CardBoxExample {

    private static final CardLayout cardLayout = new CardLayout();
    private static final JPanel cards = new JPanel(cardLayout);
    private static final JComboBox<String> combo = new JComboBox<>();

    public static void main(String[] args) {
        // Create the cards
        JPanel panel1 = new JPanel();
        panel1.setBackground(Color.RED);
        JPanel panel2 = new JPanel();
        panel2.setBackground(Color.GREEN);
        cards.add(panel1, "Panel 1");
        cards.add(panel2, "Panel 2");

        // Add the combo box
        JPanel control = new JPanel();
        combo.addItem("Panel 1");
        combo.addItem("Panel 2");
        combo.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                cardLayout.show(cards, combo.getSelectedItem().toString());
            }
        });
        control.add(combo);

        // Create the frame and add the components
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(cards, BorderLayout.CENTER);
        frame.add(control, BorderLayout.SOUTH);
        frame.pack();
        frame.setVisible(true);
    }
}</code>
Copier après la connexion

Lorsque la sélection de la zone de liste déroulante change, ActionListener met à jour la disposition du panneau des cartes pour afficher la carte sélectionnée. Cela vous permet de passer de manière transparente entre différents groupes de contrôles en fonction des entrées de l'utilisateur.

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