目前,每个标题都包含列的名称,偶尔还会在其下方包含一个组合框。每当单击组合框时,jtable 都会自动排序。是否有一种简单的方法可以仅对组合框单击禁用排序,同时保留标题的其余部分以在单击时进行排序。
有人建议我使用 JXTable,但我担心它会导致比它修复的问题更多的问题。
任何帮助表示赞赏。
尝试类似:
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。