从当前JTable视图创建新的JTable

时间:2011-05-09 09:10:02

标签: view filter save jtable tablemodel

我正在开发一个涉及JTable并对其执行排序和过滤操作的项目。我完成了排序和过滤部分,现在我希望能够从旧表的当前视图中创建一个新表。
例如如果我将某些过滤器应用于旧表,则会过滤掉一些行。我不想在我的新表中过滤掉那些行。我想我可以将新的行索引转换为模型索引并手动将单元格值添加到新表的模型中,但我想知道是否还有其他有效的方法来执行此操作?
以下是我最终做的事情:

//this code block will print out the rows in current view
int newRowCount = table.getRowCount();
int newColumnCount = table.getColumnCount();
for (int i = 0; i < newRowCount; i++) {
    for (int j = 0; j < newColumnCount; j++) {
    int viewIndex = table.convertRowIndexToModel(i);
    String value = (String) model.getValueAt(viewIndex, j);
    System.out.print(value + "\t");

    }
    System.out.println();

}

1 个答案:

答案 0 :(得分:1)

不需要任何索引转换,只需要查询表而不是基础模型

for (int i = 0; i < table.getRowCount(); i++) {
    for (int j = 0; j < table.getColumnCount(); j++) {
        Object value = table.getValueAt(i, j);
        System.out.print(value + "\t");
    }
}

注意:为了便于阅读,最好将i / j重命名为row / column,太懒了; - )