按Shift +单击JXTableHeader resetSortOrder

时间:2013-03-04 16:03:52

标签: java swing swingx jxtable

我使用JXTable和JXTableHeader来显示可排序表。 JXTableHeader支持一种重置排序顺序的方法,通过按住shift并同时左键单击标题。问题如下:这种重置模式不可能是atm,因为Java Swing的BasicTableHeaderUI向JXTableHeader添加了一个鼠标监听器,尽管我将自己的监听器添加到JXTableHeader,但是BasicTableHeaderUI被触发了,虽然我在我的监听器的mouseClick方法中重置排序顺序, BasicTableHeaderUI立即将相同的列设置为在其自己的mouseClick方法中进行排序。问题#2,我不能在事件上使用消耗,因为BasicTableHeaderUI的监听器只是忽略了标志。

如何以干净的方式阻止BasicTableHeaderUI的侦听器被触发?

解决方案:

This是我采用的解决方案。我为BasicTableHeaderUI的MouseListener实现了一个包装器,并将其更改为updateUI上的包装器。我的包装器在某种情况下忽略了包装的MouseListener的mouseClick调用( - > resetSortOrder)。

0 个答案:

没有答案