Comment échanger le contenu de l'interface utilisateur en fonction de la sélection de la zone de liste déroulante
Lors de la conception d'interfaces d'application, il est courant de présenter différents ensembles de contrôles en fonction de l'utilisateur interactions. Une façon d’obtenir cette flexibilité consiste à utiliser des zones de liste déroulante. Cette question aborde le scénario de basculement entre deux couches de contrôles en fonction d'une sélection de zone de liste déroulante.
Solution utilisant CardLayout
La classe Java CardLayout fournit une solution pratique pour gérer couches de contrôles. Cette classe permet d'ajouter plusieurs panneaux à un conteneur, et un seul panneau est visible à la fois. Le panneau visible peut être sélectionné dynamiquement à l'aide de la méthode show().
L'extrait de code ci-dessous montre comment implémenter un CardLayout pour échanger le contenu de l'interface utilisateur en fonction de la sélection de la zone de liste déroulante :
<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>
Dans Dans cet exemple, le CardLayout gère deux panneaux, panel1 et panel2. Lorsqu'un élément est sélectionné dans la liste déroulante, le panneau correspondant s'affiche dans le conteneur CardLayout. Cette approche permet de créer une interface dynamique et intuitive où différents ensembles de commandes peuvent être présentés à l'utilisateur en fonction de sa sélection.
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!