我的程序中正在加载一个 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() 的方式,我已经尝试了很多事情。我真的希望有人能看到我明显缺少的东西......
最佳答案
使用JTable具有一列(可能没有
JTableHeader
)创建TableMode l 有两个Column,城市和地区,那么
JComboBox
和JTable
都得到了相同的数据,从JTable
中删除Column城市(JTable.removeColumn()
仅涉及JTables View
,数据仍然存在于TableModel
中)添加RowFilter to JTable列包含城市,输出到
JTables View
将仅是城市区域,RowFilter
的值将从JComboBox.getSelectedItem
JCombobox
的数据来自TableModel
关于Java jList 根据组合框选择添加项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11127917/