2013-12-14 34 views
1

選擇項目,我在的Java Swing JTable其中有兩個項目使JComboBox如何從JComboBox中

當我點擊組合框中選擇一個ActionEvent火災和我的ActionListener通知。

當我在組合框中選擇一個項目時,再次調用監聽器。

comboBox.addActionListener(new ActionListener() { 

     @Override 
     public void actionPerformed(ActionEvent e) { 
      String school_id = null; 
      JComboBox comboBox = (JComboBox) e.getSource(); 
      String access_value = comboBox.getSelectedItem().toString(); 
      final int selectedRowIndex = table.getSelectedRow(); 
      System.out.println("selected row: " + selectedRowIndex); 
      if(selectedRowIndex == -1) { 
       System.out.println("returned value"); 
       return; 
      } else { 
       school_id = (String) table.getModel().getValueAt(selectedRowIndex, 2); 
      } 
      if(adminDaoImpObj.updateSchoolAccount(school_id, access_value) > 0) { 
       //System.out.println("updated success"); 
      } else { 
       System.out.println("fail"); 
      } 
      System.out.println(school_id + "--------"); 
     } 
    }); 

當我點擊組合框時,它顯示先前選擇的school_id值。

在組合框中選擇一個項目後,它顯示當前選中的行school_id值,

,但我希望它僅顯示當前選擇school_id值。

任何幫助是apreciated。

+0

我想你必須使用另一個Listener類型。 – Diversity

+0

你必須使用ItemChangeListener:看看這裏:http://stackoverflow.com/questions/58939/jcombobox-selection-change-listener – Diversity

+1

郵報[SSCCE(http://sscce.org),顯示您的問題。 –

回答

2

嘗試改用ItemListener。 也許這會導致你的首選行爲。

您必須爲新創建的行中的每個組合框創建一個新的actionListemer,並將其分配給關聯的組合框。

Maybyüassigne總是相同的ActionListener到combobixes爲這是沒有意義的每一行。 這可能是一個問題。

+0

感謝您的回覆。我用這一點,但它給予相同的結果 –

+0

請告訴我,如果我錯了,但你只是想看看選定錶行的學生證在你的組合框還是要該行條目時,日組合框selelection的變化而變化, – Diversity

+0

我想根據各自的school_id在數據庫中更改我的組合框的選定值,但是當我點擊組合框時,然後動作偵聽器觸發具有先前選擇的school_id但我想要它目前已排第school_id。 –