2013-07-10 2 views
-3

Я хав класс StageDAO так:Как попасть в JCombox с выбранного элемента?

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 сцену, я хочу знать сцену. Я не знаю, как получить стайпинг выбранного штампа?

Благодарим за помощь.

+3

Для более эффективной помощи следует отправить сообщение [SSCCE] (http://sscce.org/). BTW - '} catch() {}' Это даже не компилируется. Пожалуйста, прекратите тратить наше время на «что-то вроде» используемого кода. –

+0

Хорошо, извините, я этого не знал –

+1

Не извиняйтесь, если вы не намерены следовать советам. –

ответ

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 
    } 
} 
+0

спасибо, я думаю, вы имеете в виду вот так: lcbstage = new JCombobox (stageList). Но знаю, что мои показания combobox выглядят следующим образом: packagename.Stage –

+0

Хорошо, я делаю, как вы говорите. У него хорошо работает. Но если я хочу знать id ... я делаю lcbstage.getSelectedItem(), и я получаю ярлык. но я хочу иметь этап –

+0

Чтобы получить значение I, сделайте 'lcbstage.getSelectedItem(). id' после ввода всего элемента, как и в приведенном выше коде. –

Смежные вопросы