我有一个正在我的程序中加载的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()的方式,我已经尝试了很多东西。我真的希望有人能看到我明显错过的东西......
答案 0 :(得分:2)
将JTable与一列一起使用(可能没有JTableHeader
)
使用两个列,城市和区域创建TableMode l,然后JComboBox
和JTable
都有相同的数据,从JTable
删除列城市(JTable.removeColumn()
仅约JTables view
,数据仍显示在TableModel
)
将RowFilter to JTable添加到列包含的城市,输出到JTables view
将只是城市的区域,
RowFilter
的值将来自JComboBox.getSelectedItem
JCombobox
的数据来自TableModel