过滤后更新 jtable 模型
update jtable model after filtering
我想将过滤器应用到 JTable。
String text = textField.getText();
rowSorter = new TableRowSorter<>(tableModel);
this.getjTable1().setRowSorter(rowSorter);
this.getjTable1().removeAll();
if (text.trim().length() == 0) {
rowSorter.setRowFilter(null);
} else {
//String regex = String.format("^%s$", text);
if(jCheckBoxExtract.isSelected()){
text="^"+text+"$";
}
else{
if(!text.contains(".")||text.contains("$"))text="^"+text;
}
RowFilter rowFilter = RowFilter.regexFilter(text, 1);
rowSorter.setRowFilter(rowFilter);
}
this.getjTable1().repaint();
此代码有效,但现在,如果我想在 jtable 中获取值,模型不会更新。 jtable 中使用的模型始终是旧模型,而不是过滤后的新模型。
要获得正确的值,请在需要来自 table 的行时执行此操作:
model.getSelectedEntry(table.convertRowIndexToModel(table.getSelectedRow()));
我想将过滤器应用到 JTable。
String text = textField.getText();
rowSorter = new TableRowSorter<>(tableModel);
this.getjTable1().setRowSorter(rowSorter);
this.getjTable1().removeAll();
if (text.trim().length() == 0) {
rowSorter.setRowFilter(null);
} else {
//String regex = String.format("^%s$", text);
if(jCheckBoxExtract.isSelected()){
text="^"+text+"$";
}
else{
if(!text.contains(".")||text.contains("$"))text="^"+text;
}
RowFilter rowFilter = RowFilter.regexFilter(text, 1);
rowSorter.setRowFilter(rowFilter);
}
this.getjTable1().repaint();
此代码有效,但现在,如果我想在 jtable 中获取值,模型不会更新。 jtable 中使用的模型始终是旧模型,而不是过滤后的新模型。
要获得正确的值,请在需要来自 table 的行时执行此操作:
model.getSelectedEntry(table.convertRowIndexToModel(table.getSelectedRow()));