-4

次のような 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 でステージを選択した場合、stageid を知りたいのです。選択したステージラベルのステージ ID を取得する方法がわかりません。

ご協力ありがとうございました。

4

1 に答える 1

2

ラベルだけでなくアイテム全体を に追加し、ラベルだけを返すメソッドを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
    }
}
于 2013-07-10T13:02:31.800 に答える