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
Susan Sarandonoriginal
2024-11-03 11:16:02277parcourir

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>

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!

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