如何在JCombox中从selectedItem获取id



我有一个类StageDAO,如下所示:

public class Stage{
    public int stageID;
    public String label;
    public Stage(ResultSet rs) {
            try{
                this.stageID=rs.getInt("StageID");
                this.label=rs.getString("Label");
            }
            catch(Exception e){}
     }
}

我在类StageDAO中有一个方法,在那里我从数据库中获取数据,如下所示:

public class StageDAO{
Connect connectdb;
public StageDAO(Connect connectdb){
    this.connectdb=connectdb;
}
public Vector retrieveAll() {
    ResultSet lobjRS=null;
    Vector lobjList=new Vector();
    Connection lobjConnection = null;
    Statement lobjStatement=null;        
    Stage lobjStage = null;
    try{
        lobjConnection = this.connectdb.getConnection();
        lobjStatement = lobjConnection.createStatement();
        lobjRS = lobjStatement.executeQuery(
             "SELECT * FROM Stage order by sortkey");
        while(lobjRS.next()){
            lobjStage = new Stage (lobjRS);
            lobjList.add(lobjStage);                
        }
      }catch(){}
   }
}

在我的GUi课上,我有这个:

StageDAO lobjStage= new StageDAO (connectdb);
Vector<Stage> stageList = lobjStage.retrieveAll();//Here i have the information 
of stageID  and  stagelabel
private JComboBox lcbstage;
public void initialize(){
    lcbstage= new JComboBox();
    for(int i=0; i<stageList .size();i++){
    lcbstage.addItem(stageList.get(i).label);
    }
}

但知道如果我选在我桂的舞台上,我想知道舞台上的舞台。我不知道如何获得选定的鹿角的鹿角?

谢谢你的帮助。

将整个项目添加到JComboBox,而不仅仅是标签,并创建一个只返回标签的toString()方法:

public String toString(){
    return this.label;
}

JComboBoxaddItem获取一个对象,然后将其转换为字符串进行显示,因此当您执行getSelectedItem()时,将返回整个对象,idlabel以及其他所有对象。

public void initialize(){
    lcbstage= new JComboBox();
    for(int i=0; i<stageList .size();i++){
    lcbstage.addItem(stageList.get(i));//this line changed
    }
}

最新更新