Home > Java > javaTutorial > body text

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

Susan Sarandon
Release: 2024-11-03 11:16:02
Original
167 people have browsed it

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>
Copy after login

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!

source:php.cn
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!