我喜欢这样的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舞台,我想知道这个舞台。 我不知道如何获得所选阶段标签的阶段性?
感谢您的帮助。
答案 0 :(得分:2)
将整个项目添加到JComboBox
,而不仅仅是标签,并创建一个仅返回标签的toString()
方法:
public String toString(){
return this.label;
}
JComboBox
's 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
}
}