我使用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