0

目前,每个标题都包含列的名称,偶尔还会在其下方包含一个组合框。每当单击组合框时,jtable 都会自动排序。是否有一种简单的方法可以仅对组合框单击禁用排序,同时保留标题的其余部分以在单击时进行排序。

有人建议我使用 JXTable,但我担心它会导致比它修复的问题更多的问题。

任何帮助表示赞赏。

4

1 回答 1

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。

于 2013-04-30T17:40:55.463 回答