combobox java帮助恢复selectedItem的ID

时间:2015-10-21 11:01:39

标签: java

我是java的初学者,我想在两个表(供应商,片段)上使用组合框我加载我的提供者组合框但是当我点击供应商时我想获得它的ID并将其插入片中。我的问题是检索组合框中选择的供应商ID的代码,请帮帮我,这是我的代码:

private void Fillcombo(){

 String sql ="select * from fournisseur";
 try{

     stm = conn.obtenirconnexion().createStatement();
     Rs = stm.executeQuery(sql);
     while(Rs.next()){
           String f= Rs.getString("nomFournisseur");
           txt_f.addItem(f);
     }
 }catch(Exception e){ 
     JOptionPane.showMessageDialog(null, e);
 }

1 个答案:

答案 0 :(得分:0)

您需要的是能够在组合框中呈现有关供应商的描述/名称,但是当您在组合框中选择描述/名称时,您希望能够检索供应商对象。

JCombobox很自然地拥有它。你可以在JCombobox中添加除String之外的对象作为项目,JCombobox将使用对象的toString()方法来渲染它,而JCombobox.getSeletecedItem()仍将为你提供完整的对象。

那么你可以做什么:1)定义一个Vendor类(你可以为你的piece类做同样的事情)2)根据你从数据库加载的数据创建Vendor对象3)覆盖toString()方法要在JCombobox中显示的文本的供应商4)将供应商对象添加到JCombobox中5)执行所选供应商需要做的任何事情

示例:

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Vendor {
String name;
int ID;

@Override
public String toString() {
    return name;
}

public Vendor(String name, int ID) {
    this.name = name;
    this.ID = ID;
}

public static void main(String[] args) {
    Vendor[] vendors = {new Vendor("Apple", 1)
            , new Vendor("Microsoft", 2)
            , new Vendor("Google", 3)};

    final JComboBox comboBox = new JComboBox(vendors);

    JFrame jFrame = new JFrame();
    jFrame.add(comboBox);
    jFrame.setVisible(true);
    jFrame.pack();

    comboBox.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            Vendor selectedVendor = (Vendor) comboBox.getSelectedItem();
            System.out.println(selectedVendor.name + ", " + selectedVendor.ID);
            // do whatever here you need to do with the ID of vendor
        }
    });
}
}