Remplir un combobox avec deux valeur

andrybrice Messages postés 2 Date d'inscription jeudi 6 février 2014 Statut Membre Dernière intervention 6 février 2015 - 6 févr. 2015 à 13:52
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 9 févr. 2015 à 10:32
Bonjour,
J'ai un problème sur mon projet, j'aimerais charger mon combobox avec deux valeur de mon table.
exemple : numero et le nom dans un même combox.
Merci d'avance pour votre réponse
A voir également:

1 réponse

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
9 févr. 2015 à 10:32
Salut,

De manière simpliste surcharge la méthode toString de l'item que tu stocks dans ton JComboBox.

ex:
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 + ")";
    }
  }
}



Après si tu veux rajouter des images and co il faudra jouer avec le model: http://www.java2s.com/Code/Java/Swing-JFC/CustomComboBoxwithImage.htm
1
Rejoignez-nous