La liste JComboBox Java

1 – Création d’un JCombBox Java

Etape 1 : Avant de créer un JComboBox, il va falloire préalablement savoir qu’il s’agit d’un composant Swing.
Pour cela, on doit impérativement créer une fenêtre dotée d’un JPanel en instanciant les classes JFrame et JPanel:

 JFrame f=new JFrame();   
JPanel pan=new JPanel();
f.setContentPane(pan);    
pan.setLayout(null);    
f.setSize(250,200);

Etape 2 : Création des éléments qui vont constituer la JComboBox. Les éléments qui vont constituer la JComboBox, peuvent être créer et organiser sur un tableau d’objets

Object[] elements = new Object[]{"élément1", "élément2", "élément3"};

Exemple :

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;


public class ComboBox1 {


public static void main(String[] args) { 

//- 1) --- création d'une fenêtre JFrame Java    
JFrame f=new JFrame();    
JPanel pan=new JPanel();    
f.setContentPane(pan);    
pan.setLayout(null);    
f.setSize(250,200);


//- 2) --- définir les élément de la liste 
JComboBoxObject[] elements = new Object[]{"Laptop HP", "Laptop Acer", "Laptop Azus"};    

//- 3) --- Création d'une nouvelle liste 
JComboBox JComboBox<Object> liste = new JComboBox(elements); 
liste.setBounds(10, 10, 120, 23); 
pan.add(liste);           
f.setVisible(true);

3 – Ajout d’actions à la liste JComboBox

Après avoir créer une liste JomboBox, on peut lui associer une action qui se declenche au moment de la séléction à l’aide de la méthode addActionListener(). L’action ne peut être ajouter que si la séléction est récupérée via la méthode getSelectedItem().

//- 4) --- Ajout d'une action à la séléction
liste.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent e) { 
e.getSource(); 

//- 5) --- récupération de la séléction sur une variable du type String
String s=(String) liste.getSelectedItem(); 
System.out.println("Vous avez séléctionné : "+s); 
} 
});

On peut également afficher les résultats sur un JLabel :

Exemple complet :

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class ComboBox2 {

	public static void main(String[] args) {
		
//- 1) --- define new Window JFrame
		   JFrame f=new JFrame();
		   JPanel pan=new JPanel();
		   f.setContentPane(pan);
		   pan.setLayout(null);
		   f.setSize(400,300);

//- 2) --- Création des éléments de la JComboBox Java
Object[] elements = new Object[]{"Laptop HP", "Laptop Acer", "Laptop Azus"};

//- 3) --- Création d'une nouvelle liste JComboBox
	JComboBox<String> liste = new JComboBox(elements);
	liste.setBounds(10, 10, 120, 23);
		pan.add(liste);
		
//- 4) --- Création d'un  JLabel pour afficher les résultats de la séléction
		  JLabel label=new JLabel("View results here !");
		  pan.add(label);
		  label.setBounds(10,30,250,50);
		  
//- 5) --- appliquer une action listener à la liste  JComboBox
		liste.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				e.getSource();
				String s=(String) liste.getSelectedItem();
				label.setText("Vous avez séléctionné : "+s);
				}
		});
		 f.setVisible(true);

	}

}

Ce qui affiche après exécution :