import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JOptionPane; public class Test extends JFrame { public Test() { setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(300, 100); setLocationRelativeTo(null); /* init des items */ ZeComboItem items [] = new ZeComboItem[10]; for(int i = 0; i < items.length; ++i) items[i] = new ZeComboItem("name" + (i + 1), "number " + (i + 1)); /* creation d'un combo avec les items */ final JComboBox<ZeComboItem> combo = new JComboBox<ZeComboItem>(items); /* pour afficher un message lors de la sélection d'un item */ combo.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ZeComboItem item = (ZeComboItem)combo.getSelectedItem(); JOptionPane.showMessageDialog(Test.this, "Item name: '" + item.name + "', number: '" + item.number + "'"); } }); setContentPane(combo); } public static void main(String[] args) { new Test().setVisible(true); } class ZeComboItem { private String name; private String number; public ZeComboItem(final String name, final String number) { this.name = name; this.number = number; } public String toString() { return name + " (" + number + ")"; } } }