Home > Java > javaTutorial > How can I dynamically swap UI content based on a combo box selection using CardLayout in Java?

How can I dynamically swap UI content based on a combo box selection using CardLayout in Java?

Patricia Arquette
Release: 2024-11-03 02:12:02
Original
941 people have browsed it

How can I dynamically swap UI content based on a combo box selection using CardLayout in Java?

How to Swap UI Content Based on Combo Box Selection

When designing application interfaces, it's common to present different sets of controls based on user interactions. One way to achieve this flexibility is through the use of combo boxes. This question addresses the scenario of switching between two layers of controls based on a combo box selection.

Solution Using CardLayout

The Java CardLayout class provides a convenient solution for managing layers of controls. This class allows for multiple panels to be added to a container, and only one panel is visible at a time. The visible panel can be selected dynamically using the show() method.

The code snippet below demonstrates how to implement a CardLayout to swap UI content based on combo box selection:

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

public class CardPanelExample {

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Create two panels to be swapped
        JPanel panel1 = new JPanel();
        panel1.setBackground(Color.CYAN);
        JPanel panel2 = new JPanel();
        panel2.setBackground(Color.ORANGE);

        // Create a CardLayout and add the panels
        CardLayout cardLayout = new CardLayout();
        JPanel cardPanel = new JPanel(cardLayout);
        cardPanel.add(panel1, "Panel1");
        cardPanel.add(panel2, "Panel2");

        // Create a combo box and add items
        JComboBox<String> comboBox = new JComboBox<>();
        comboBox.addItem("Panel1");
        comboBox.addItem("Panel2");

        // Add an action listener to the combo box
        comboBox.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                cardLayout.show(cardPanel, comboBox.getSelectedItem().toString());
            }
        });

        // Add the card panel and combo box to the frame
        frame.add(cardPanel, BorderLayout.CENTER);
        frame.add(comboBox, BorderLayout.SOUTH);
        frame.setSize(400, 300);
        frame.setVisible(true);
    }
}</code>
Copy after login

In this example, the CardLayout manages two panels, panel1 and panel2. When an item is selected from the combo box, the corresponding panel is displayed in the CardLayout container. This approach allows for a dynamic and intuitive interface where different sets of controls can be presented to the user based on their selection.

The above is the detailed content of How can I dynamically swap UI content based on a combo box selection using CardLayout in Java?. 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