2010-07-13 82 views
0

無論何時用戶單擊表列以進行排序,我都需要存儲鼠標單擊事件。重新觸發MouseListener事件

我基本上保存MouseEven:

public void mouseClicked(MouseEvent e_) 

我E_存儲在一個全局變量,所以後來我可以觸發同樣的事件排序表到以前的用戶排序操作。

但是,當我手動觸發先前存儲的鼠標事件時,表不會被排序。

Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(_mouseEvent); 

所以基本上這就是我希望它的工作方式。用戶單擊一個JTable列進行排序。 我將創建的MouseEvent存儲在全局變量上。當JTable被重新創建時,我需要將它設置爲之前的排序操作。
這就是爲什麼我需要重新啓動存儲的MouseEvent,但它不工作。有任何想法嗎?

+1

當用戶點擊TableHeader進行排序時,您正在重新創建表格這一事實讓我感到不舒服,這就像是一種代碼異味/警告。 – Syntax 2010-07-13 02:08:23

回答

1

它與鼠標事件無關。您必須存儲行分揀機的狀態。看看RowSorter API。您可以使用getSortKeys()setSortKeys()方法檢索並恢復此狀態。顯然可以使用getRowSorter()方法從您的表中獲取RowSorter。

希望它是有道理的。

+0

謝謝,這很有道理。我會試一試。 – Marquinio 2010-07-13 13:01:52

+0

是這樣做的伎倆謝謝。 – Marquinio 2010-07-13 13:37:01

0

查看DefaultRowSorter的sort()方法。