将一行移至顶部

时间:2011-02-15 19:15:15

标签: java jtable

以下是jTable中我的数据的外观:

SrNo Name LName
1    A       B
2    B       C
3    D       E
4    F       G

现在当我点击第4行,然后点击“移至TOP”按钮时,该表应该如下所示,

SrNo Name LName
1    F       G
2    A       B
3    B       C
4    D       E

我可以想到两种方法:

  1. 交换(只是Name和LName的内容)第4行第3行,第3行第2行,直到我们到达顶部。
  2. 将所选行的SrNo更改为1,增加其上方所有行的SrNo,减少其下方所有行的SrNo,并按SrNo排序。
  3. 哪种方法好?或者有更好的方法吗?

    (此表绑定到数据库,但这是另一个问题)

2 个答案:

答案 0 :(得分:2)

DefaultTableModel已经支持moveRow(...)方法。

另外,我不知道SrNo是什么,但如果值只是行号,那么它不应该是模型的一部分。而应该呈现为行标题视图的一部分。也许像Row Number Table

答案 1 :(得分:1)

使用表模型,该表模型由POJO列表备份,如下所示:

http://puces-samples.svn.sourceforge.net/viewvc/puces-samples/trunk/sessionstate-suite/sessionstate-sample/src/blogspot/puce/sessionstate/sample/ParticipantTableModel.java?revision=2&view=markup

添加如下方法:

public void moveToTop(int index){
  MyPojoClas myPojo = myList.remove(index);
  myList.add(0, myPojo);
  fireTableRowsUpdated(0, index);
}