Home >Java >javaTutorial >How can I dynamically change UI elements based on a combo box selection in Java?
Implementing Dynamic UI Based on Combo Box Selection Using CardLayout
In GUI design, it is often necessary to dynamically alter the user interface depending on specific user interactions. One common scenario is to display different sets of controls based on the selection of a combo box.
To achieve this, one can utilize the CardLayout class from the Java AWT library. CardLayout manages a stack of components, allowing for the switching between them by displaying only one card at a time.
For example, consider a dialog box where one group of controls needs to be displayed if a combo box is checked and another group of controls should be shown otherwise. To implement this functionality using CardLayout:
Here is an example code snippet demonstrating the implementation:
<code class="java">import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JPanel; public class CardPanelExample { public static void main(String[] args) { JFrame frame = new JFrame(); // Create a CardLayout to manage the layers CardLayout layout = new CardLayout(); JPanel cards = new JPanel(layout); // Add the two layers of controls to the CardLayout JPanel layer1 = new JPanel(); layer1.add(new JLabel("Layer 1")); JPanel layer2 = new JPanel(); layer2.add(new JLabel("Layer 2")); cards.add(layer1, "layer1"); cards.add(layer2, "layer2"); // Create a combo box and add it to the GUI JComboBox<String> combo = new JComboBox<>(); combo.addItem("Layer 1"); combo.addItem("Layer 2"); // Add an ActionListener to the combo box combo.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // Show the appropriate card based on the selected item layout.show(cards, combo.getSelectedItem()); } }); // Add the combo box and cards panel to the GUI frame.add(combo, BorderLayout.NORTH); frame.add(cards, BorderLayout.CENTER); </code>
The above is the detailed content of How can I dynamically change UI elements based on a combo box selection in Java?. For more information, please follow other related articles on the PHP Chinese website!