重新触发MouseListener事件

时间:2010-07-13 01:13:47

标签: java swing

每当用户点击表格列进行排序时,我都需要存储鼠标点击事件。

我基本上是在保存MouseEven:

public void mouseClicked(MouseEvent e_)

我将e_存储在一个全局变量上,以便稍后我可以触发同一个事件并将该表排序为上一个用户排序操作。

但是当我手动触发先前存储的鼠标事件时,表格不会被排序。

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

所以基本上这就是我希望它的工作方式。用户单击JTable列进行排序。 我将创建的MouseEvent存储在全局变量上。当重新创建JTable时,我需要将它设置为先前的排序操作 这就是为什么我需要重新激活存储的MouseEvent,但它无法正常工作。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

它与鼠标事件无关。您必须存储行分拣机的状态。看看RowSorter API。您可以使用getSortKeys()setSortKeys()方法检索和恢复此状态。显然可以使用getRowSorter()方法从表中获取RowSorter。

希望它有意义。

答案 1 :(得分:0)

请参阅DefaultRowSorter的sort()方法。