如何在排序的jtable中的特定索引处插入空行?

时间:2015-01-08 10:04:13

标签: java swing sorting jtable

我有以下jtable,它按sortKey列按升序排序。

row# col1 col2 col3 sortKey
1     a    b    c    1
2     d    e    f    2
3     g    h    i    3

我已使用TableRowSorter对此JTable进行排序。 现在我想在第1行和第2行之间插入一个空行,结果应该是这样的。

row# col1 col2 col3 sortKey
1     a    b    c    1
2
3     d    e    f    2
4     g    h    i    3

但我得到的结果如

row# col1 col2 col3 sortKey
1
2     a    b    c    1
3     d    e    f    2
4     g    h    i    3

如何在排序时将空行的位置固定到此表中?

1 个答案:

答案 0 :(得分:2)

如果您的JTable带有RowSorter并添加/插入新行,则该行会显示在RowSorter确定的位置。因此,如果在您的示例中插入了一个空行(因此具有空值),则该行显示在第一个位置,因为" null"小于" 1"。

如果您想在不同的位置展示它,您有2个选项:

  1. 您为列sortKey(插入行时)提供了适当的值。如果您在示例中将整数值作为排序键,并且希望在排序键和#34; 1"之间显示一行。和" 2"你必须给新行一个值" 2"并调整所有后续行的排序键值。

  2. 您可以致电table.setRowSorter (null)停用排序。请记住,在使用行排序器再次调用table.setRowSorter后,使用值填充行后重新激活排序。