
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!
Introduction to linux operating system
How to configure maven in idea
What is the encoding used inside a computer to process data and instructions?
What are the free crawler tools?
oracle clear table data
Introduction to architectural drawing software
There are several ways to position CSS position
How to use ffdshow decoder