2013-04-30 69 views
0

当前每个标题都包含该列的名称,并且在其下面包含一个组合框。每当组合框被点击时,jtable自动分类。有没有简单的方法来禁用排序只是组合框的点击,同时保留头的其余部分按点击排序。JTable分割标题禁用排序

我有人建议JXTable,但我担心它会引起更多的问题,比它会解决。

任何帮助表示赞赏。

+0

http://stackoverflow.com/questions/3312953/how-can-you-disable-all-sorting-code-in-jtable-in-1-6给出了一些信息,但不完全是你想要的。 – 2013-04-30 16:08:17

+0

我不确定你在说什么......以及我是那种。你能提供一些项目的代码吗? – 2013-04-30 16:18:09

+0

代码是有点散开(应该清理,但这是另一个问题)。我想维护标题其余部分的排序功能,但忽略组合框的排序。不太确定如何覆盖JTable的排序。 – 2013-04-30 16:33:08

回答

0

尝试类似:

public class SortFilterTableHeaderUI extends BasicTableHeaderUI { 

    private Component filteredComponent; 

    @Override 
    protected MouseInputListener createMouseInputListener() { 
     return new MouseInputHandler() { 

      @Override 
      public void mouseClicked(MouseEvent e) { 
       if (!filteredComponent.contains(e.getPoint())) 
        super.mouseClicked(e); 
      } 
     }; 
    } 
} 

其他选项是覆盖JTAbleHeader.columnAtPoint(Point point)并返回-1如果组合中包含的地步。