如何在排序表中现在选中的行之后插入一行

时间:2011-05-31 07:07:41

标签: sorting insert jtable

这或多或少与以下内容重复:
How can i sort java JTable with an empty Row and force the Empty row always be last?
http://www.java.net/node/645655

唯一的区别是我想在当前选中的行之后插入新行。当插入行时,DefaultRowSorter的默认行为会立即排序,而我需要的是暂时关闭排序,以便我可以将行插入我指定的位置,而不是排序器中的位置

我注意到How can i sort java JTable with an empty Row and force the Empty row always be last?中提供了2个链接,但它们不再有效,这就是我创建这个新问题的原因。

1 个答案:

答案 0 :(得分:0)

我从JDK完全复制了DefaultRowSorter和TableRowSorter并更改了insertInOrder(),如下所示,它现在看起来像我预期的那样。

for (int i = 0; i < max; i++) {
if(sortOnInsert)
{
    index = Arrays.binarySearch(current, toAdd.get(i));
    if (index < 0) {
        index = -1 - index;
    }
}
else
{
    Row rowBeforeAdd = new Row(this, toAdd.get(i).modelIndex - 1);
    index = Arrays.binarySearch(current, rowBeforeAdd);
    if (index < 0) {
        index = viewToModel.length - 1;
    }
    else
    {
        index += 1;
    }
}