Home  >  Article  >  Java  >  How to Dynamically Switch UI Elements Based on Combo Box Selection?

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

Susan Sarandon
Susan SarandonOriginal
2024-11-03 11:16:02206browse

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

Dynamically Switch UI Elements Based on Combo Box Selection

In a dialog box, you need to display specific sets of controls based on the selection made in a combo box. This is achieved by using multiple layers and switching between them when the combo box is checked or unchecked.

CardLayout for Control Layering

The CardLayout is an effective solution for this scenario. It allows you to have multiple panels, referred to as "cards," and display only one at a time by changing the layout.

The following code snippet demonstrates how to implement this:

<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>

When the combo box selection changes, the ActionListener updates the layout of the cards panel to display the selected card. This allows you to seamlessly transition between different groups of controls based on user input.

The above is the detailed content of How to Dynamically Switch UI Elements Based on Combo Box Selection?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn