Implementing UI Changes Based on Combo Box Selections
When designing UI dialogs, it's often necessary to dynamically display different sets of controls based on the selection made in a combo box. This article explores how to achieve this functionality using Java's CardLayout manager.
Using CardLayout for Dynamic UI Switching
CardLayout is a layout manager that allows you to switch between multiple "cards" or layers of controls within a single container. Each card contains a different set of components.
To use CardLayout effectively, follow these steps:
Example Code
Consider the following example:
<code class="java">import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class CardPanel extends JPanel { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { create(); } }); } private static void create() { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel cards = new JPanel(new CardLayout()); JComboBox combo = new JComboBox(); for (int i = 1; i < 9; i++) { CardPanel p = new CardPanel("Panel " + String.valueOf(i)); combo.addItem(p); cards.add(p, p.toString()); } combo.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { CardLayout cl = (CardLayout) cards.getLayout(); cl.show(cards, combo.getSelectedItem().toString()); } }); f.add(cards, BorderLayout.CENTER); f.add(combo, BorderLayout.SOUTH); f.pack(); f.setLocationRelativeTo(null); f.setVisible(true); } }</code>
Conclusion
Utilizing CardLayout provides a flexible way to manage dynamic UI elements within dialogs or other complex layouts. By switching between cards based on user input, developers can create highly adaptable and intuitive user interfaces.
The above is the detailed content of How to Use CardLayout to Create Dynamic UI Changes Based on Combo Box Selections?. For more information, please follow other related articles on the PHP Chinese website!