我使用defaulttablemodel创建了带有combobox的表格。我需要根据组合框值(10,20,30,40)隐藏/显示已经创建和填充的行。在jtable中隐藏/显示行
private void newFilter(int numberOfRows) {
RowFilter<TableModel, Integer> filter = new RowFilter<TableModel, Integer>() {
@Override
public boolean include(RowFilter.Entry<? extends TableModel, ? extends Integer> entry) {
int i = table.convertRowIndexToView(entry.getIdentifier());
return i < numberOfRows;
}
};
((TableRowSorter) table.getRowSorter()).setRowFilter(filter);
}
combobox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
String s = (String) combobox.getSelectedItem();
if (s.equals("10")) {
newFilter(10);
} else if (s.equals("15")) {
newFilter(15);
} else if (s.equals("20")) {
newFilter(20);
} else if (s.equals("30")) {
newFilter(30);
} else if (s.equals("40")) {
newFilter(40);
}
}
});
我试过这样,它的工作原理,直到我再次选择相同的价值,例如10,那么它什么都不做。我该怎么办?
今后,发布正确的[SSCCE(http://sscce.org/)演示该问题。请参阅我的答案,了解一个SSCCE的例子。 – camickr