如何从selectedItem中获取一个Combobox的id?

时间:2013-07-10 12:58:27

标签: java swing awt jcombobox

我喜欢这样的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);
    }
}

但是知道如果我选择我的Gui舞台,我想知道这个舞台。 我不知道如何获得所选阶段标签的阶段性?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

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

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

JComboBox's addItem获取一个对象,然后将其转换为字符串以供显示,因此当您getSelectedItem()整个对象idlabel以及其他所有内容时,被退回。

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