Implémentation d'une interface utilisateur dynamique basée sur la sélection d'une zone de liste déroulante à l'aide de CardLayout
Dans la conception d'une interface graphique, il est souvent nécessaire de modifier dynamiquement l'interface utilisateur en fonction de interactions utilisateur spécifiques. Un scénario courant consiste à afficher différents ensembles de contrôles en fonction de la sélection d'une zone de liste déroulante.
Pour y parvenir, on peut utiliser la classe CardLayout de la bibliothèque Java AWT. CardLayout gère une pile de composants, permettant de basculer entre eux en affichant une seule carte à la fois.
Par exemple, considérons une boîte de dialogue dans laquelle un groupe de contrôles doit être affiché si une zone de liste déroulante est cochée et un autre groupe de contrôles doit être affiché autrement. Pour implémenter cette fonctionnalité à l'aide de CardLayout :
Voici un exemple d'extrait de code démontrant la mise en œuvre :
<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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!