我现在正像每个人一样获得jTable的价值:
String d = jTable1.getModel().getValueAt( jTable1.getSelectedRow() , row ).toString();
问题是现在我正在使用roworter对我的jTable进行排序:
sorter = new TableRowSorter<TableModel>(modelo);
jTable1.setRowSorter(sorter);
private void filterTable(){
//If current expression doesn't parse, don't update.
try {
rf = RowFilter.regexFilter("(?iu)"+jFilter.getText(),0,1,2,3,4);//no filtrar la columna con imágenes porque hace cualquiera
} catch (java.util.regex.PatternSyntaxException e) {
return;
}
sorter.setRowFilter(rf);
}
问题: 一旦表被过滤,函数getSelectedRow返回正确的行,但getModel函数返回原始模型,而不是过滤后的模型...
问题: 过滤后如何从表中获取正确的值?
答案 0 :(得分:1)
您可能需要使用convertRowIndexToModel将“row”值转换为模型索引值。
String d = Table1.getModel().getValueAt(convertRowIndexToModel(jTable1.getSelectedRow()) , column ).toString();
答案 1 :(得分:1)
对于未来的流浪者:
问题在于从jTable获取值:
如果你有一个roworter,那就错了:
String d = jTable1.getModel().getValueAt( jTable1.getSelectedRow() , row ).toString();
这就是你应该做的事情:
String d = jTable1.getValueAt( jTable1.getSelectedRow() , row ).toString();