Java 过滤后更新jtable模型
我想将筛选器应用于JTableJava 过滤后更新jtable模型,java,swing,jtable,tablemodel,rowsorter,Java,Swing,Jtable,Tablemodel,Rowsorter,我想将筛选器应用于JTable String text = textField.getText(); rowSorter = new TableRowSorter<>(tableModel); this.getjTable1().setRowSorter(rowSorter); this.getjTable1().removeAll(); if (text.trim
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();
String text=textField.getText();
rowSorter=新表格rowSorter(表格型号);
this.getjTable1().setRowSorter(rowSorter);
this.getjTable1().removeAll();
如果(text.trim().length()==0){
rowSorter.setRowFilter(空);
}否则{
//String regex=String.format(“^%s$”,文本);
if(jCheckBoxExtract.isSelected()){
text=“^”+text+“$”;
}
否则{
如果(!text.contains(“.”| | text.contains($”)text=“^”+text;
}
RowFilter RowFilter=RowFilter.regexFilter(文本,1);
rowSorter.setRowFilter(rowFilter);
}
this.getjTable1().repaint();
这段代码可以工作,但是现在,如果我想在jtable中获得一个值,那么模型不会更新。jtable中使用的模型始终是旧模型,而不是经过筛选后的新模型 要获得正确的值,请在需要表中的行时执行此操作:
model.getSelectedEntry(table.convertRowIndexToModel(table.getSelectedRow()));
要获得正确的值,请在需要表中的行时执行此操作:
model.getSelectedEntry(table.convertRowIndexToModel(table.getSelectedRow()));
为了更快地获得更好的帮助,请发布一个or。为表格硬编码一些数据。为了更快地获得更好的帮助,请发布or。为表格硬编码一些数据。