2012-06-20 107 views
0

我有一個csv文件正在我的程序中加載。它包含城市和地區以及其他一些東西(這裏不重要)。一旦選擇了csv,我將數據加載到幾個組合框中。Java jList基於組合框選擇添加項目

1件事就是不工作,我有一個包含所有城市的組合框,現在我需要列出基於從組合框中選擇該國所有地區。

這裏是事件:

private void cboProvinciesItemStateChanged(java.awt.event.ItemEvent evt) {            
    //System.out.println(Arrays.asList(gemeentesPerProvincie(gemeentes))); 
    invullenListProvincie(gemeentes); 
}  

這裏是方法:

 private void invullenListProvincie(ArrayList<Gemeentes> gemeentes) { 

    Gemeentes gf = (Gemeentes) cboProvincies.getSelectedItem(); 
    DefaultListModel model = new DefaultListModel(); 
    JList list = new JList(model); 

    for (Gemeentes gemeente : gemeentesPerProvincie(gemeentes)) { 
     model.addElement(gemeente); 
    } 

    lstGemeentes.setModel(model); 

} 

,這是過濾從組合框中等於選擇的所有領域的方法:

private ArrayList<Gemeentes> gemeentesPerProvincie(ArrayList<Gemeentes> gemeentes) { 

    String GemPerProv = (String) cboProvincies.getSelectedItem(); 
    ArrayList<Gemeentes> selectie = new ArrayList<Gemeentes>(); 
    for (Gemeentes gemeente : gemeentes) { 
     if (gemeente.getsProvincie().equals(GemPerProv)) { 
      selectie.add(gemeente); 
     } 
    } 

    return selectie; 
} 

我相信錯誤是我試圖將項目添加到的jList gemeentesPerProvincie()的方式,我個人有T已經有很多事情了。我真的希望有人能看到什麼,我清楚地失蹤...

+1

這是哈日d根據代碼片段說出什麼是錯的。如果您很快就得不到有效的答案,請考慮創建併發布[sscce](http://sscce.org)。 –

+0

您是否正在使用組合框的狀態更改事件註冊'cboProvinciesItemStateChanged'事件處理程序?此外,'gf'和'list'沒有用,不需要 – Attila

+0

我明白,但我想也許有人可能會看到我在做什麼錯誤的項目添加到jList。對於我想的問題,Java有點煩人。此外,jList的文檔始終是關於添加一個簡單的字符串,這不是這裏的情況。 – logistef

回答

2
  • 使用AutoComplete JComboBox/JTextField不是純JCombobox

  • 使用JTable與一列(也許不JTableHeader

  • 創建TableMode升有兩列,城市和地區,那麼這兩個JComboBoxJTable都得到了相同的數據,從JTable刪除列的城市(JTable.removeColumn()只有約JTables view,數據仍然呈現在TableModel

  • 添加RowFilter to JTable到列包含城市,輸出到JTables view將成爲城市唯一地區,

  • RowFilter值將從JComboBox.getSelectedItem

  • 將成爲
  • 數據JComboboxTableModel

+0

感謝您的回答,唯一的問題是我必須在jList中完成它。我有幾天的測試,所以代碼本身將被檢查。 – logistef

+0

更改JList到JTable不是什麼東西,不知何故非常複雜的事情 – mKorbel

+0

和JList(與JTable比較)將只會複雜化.... – mKorbel