JComboBox | Java Swing
JComboBox fait partie du package Java Swing. JComboBox hérite de la classe JComponent. JComboBox affiche un menu contextuel sous forme d’une liste qui permet à l’utilisateur de sélectionner une option dans cette liste spécifiée. JComboBox peut être modifiable ou en lecture seule selon le choix du programmeur.
Les constructeurs de la classe JComboBox sont:
JComboBox() | Crée un nouveau JComboBox vide. |
JComboBox(ComboBoxModel M) | Crée un nouveau JComboBox avec les éléments du ComboBoxModel spécifié |
JComboBox(E[] i) | Crée un nouveau JComboBox avec les éléments du tableau spécifié. |
JComboBox(Vector items) | Crée un nouveau JComboBox avec les éléments du vecteur spécifié. |
Les méthodes couramment utilisées sont:
- addItem(E item) : ajoute l’élément à JComboBox
- addItemListener( ItemListener l) : ajoute un ItemListener à JComboBox.
- getItemAt(int i) : renvoie l’élément à l’index i
- getItemCount() : retourne le nombre d’éléments de la liste
- getSelectedItem() : retourne l’élément qui est sélectionné
- removeItemAt(int i) : supprime l’élément à l’index i
- setEditable(boolean b) : le booléen b détermine si la liste est modifiable ou non. Si la valeur « true » est transmise, la liste est modifiable ou si « false » la liste n’est pas modifiable.
- setSelectedIndex(int i) : sélectionne l’élément de JComboBox à l’index i.
- showPopup() : permet à la liste déroulante d’afficher sa fenêtre contextuelle.
- setEnabled(boolean b) : active la liste déroulante afin que les éléments puissent être sélectionnés.
- removeItem(Object anObject) : supprime un élément de la liste des éléments.
- removeAllItems() : supprime tous les éléments de la liste.
- removeActionListener(ActionListener l) : supprime ActionListener.
- isPopupVisible() : détermine la visibilité du popup.
- getItemCount() : renvoie le nombre des éléments dans la liste.
Exemple:
import javax.swing.*; import java.awt.*; import java.awt.event.*; class ComboBoxExemple extends JFrame implements ItemListener { // frame static JFrame frame; // combobox static JComboBox combobox; // label static JLabel l1, l2; public static void main(String[] args) { // créer un nouvea frame frame = new JFrame("frame"); // créer un objet ComboBoxExemple obj = new ComboBoxExemple(); // définir la disposition du frame frame.setLayout(new FlowLayout()); // tableau de chaînes contenant des langages String s1[] = { "Java", "PHP", "Python", "C++", "Ruby" }; // créer une case à cocher combobox = new JComboBox(s1); // ajouter ItemListener combobox.addItemListener(obj); // créer des étiquettes l1 = new JLabel("Quel est votre langage prefere? "); l2 = new JLabel("[Java]"); // définir la couleur du texte l2.setForeground(Color.blue); // créer un nouveau panneau JPanel p = new JPanel(); // ajouter combobox et labels au panneau p.add(l1); p.add(combobox); p.add(l2); // ajouter le panneau au frame frame.add(p); // définir la taille du frame frame.setSize(400, 200); frame.show(); } public void itemStateChanged(ItemEvent e) { // si l'état du combobox est modifiée if (e.getSource() == combobox) { l2.setText(" ["+combobox.getSelectedItem()+"]"); } } }
Sortie: