2011-02-15 108 views
0

這是我在JTable中數據的外觀:移動一行到頂部

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

現在,當我點擊第4行,並且點擊按鈕「移到頂部」,這個表應該是這樣的,

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

我能想到的兩種方法:

  1. 交換行4列3行3(只是名稱和LName的內容)與第2行,這樣做,直到我們達到頂部。
  2. 將所選行的SrNo更改爲1,增加其上的所有行的SrNo,減少其下的所有行的SrNo並按SrNo排序。

哪個方法好?還是有更好的方法?

(此表被綁定到數據庫中,但它是另一個問題)

回答

2

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

此外,我不知道SrNo是什麼,但如果該值只是行號,那麼它不應該是模型的一部分。相反,應該呈現爲行標題視圖的一部分。也許像Row Number Table

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); 
} 
+0

非常感謝......這對我來說能夠將行移動到頂端......但是如何改變序列呢?它從這個[link](http://dl.dropbox.com/u/570828/before.PNG)到這個[link](http://dl.dropbox.com/u/570828/after.PNG) ...並且我希望D列一直處於有序狀態......(即1,2,3 ...)對此有何想法? – 2011-02-16 17:20:12

+0

您是否嘗試過使用Rob(camickr)提到的行號表方法來渲染行號? – Puce 2011-02-16 17:37:59