Java jList基于组合框选择添加项目

时间:2012-06-20 20:45:42

标签: java swing csv jcombobox jlist

我有一个正在我的程序中加载的csv文件。它包含城市和地区以及其他一些东西(这里不重要)。选择csv后,我将数据加载到几个组合框中。

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()的方式,我已经尝试了很多东西。我真的希望有人能看到我明显错过的东西......

1 个答案:

答案 0 :(得分:2)

  • 使用AutoComplete JComboBox / JTextField代替普通JCombobox

  • JTable与一列一起使用(可能没有JTableHeader

  • 使用两个列,城市和区域创建TableMode l,然后JComboBoxJTable都有相同的数据,从JTable删除列城市(JTable.removeColumn()仅约JTables view,数据仍显示在TableModel

  • RowFilter to JTable添加到列包含的城市,输出到JTables view将只是城市的区域,

  • RowFilter的值将来自JComboBox.getSelectedItem

  • JCombobox的数据来自TableModel