2012-06-20 68 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