我有一个类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;
}
JComboBox
的addItem
获取一个对象,然后将其转换为字符串进行显示,因此当您执行getSelectedItem()
时,将返回整个对象,id
和label
以及其他所有对象。
public void initialize(){
lcbstage= new JComboBox();
for(int i=0; i<stageList .size();i++){
lcbstage.addItem(stageList.get(i));//this line changed
}
}