Changer dynamiquement les éléments de l'interface utilisateur en fonction de la sélection de la zone de liste déroulante
Dans une boîte de dialogue, vous devez afficher des ensembles spécifiques de contrôles en fonction de la sélection réalisé dans une combo box. Ceci est réalisé en utilisant plusieurs calques et en basculant entre eux lorsque la zone de liste déroulante est cochée ou décochée.
CardLayout pour la superposition de contrôle
Le CardLayout est une solution efficace pour cela scénario. Il vous permet d'avoir plusieurs panneaux, appelés « cartes », et d'en afficher un seul à la fois en modifiant la disposition.
L'extrait de code suivant montre comment implémenter cela :
<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>
Lorsque la sélection de la zone de liste déroulante change, ActionListener met à jour la disposition du panneau des cartes pour afficher la carte sélectionnée. Cela vous permet de passer de manière transparente entre différents groupes de contrôles en fonction des entrées de l'utilisateur.
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!