現在、すべてのヘッダーには列の名前が含まれており、場合によってはその下にコンボ ボックスが含まれています。コンボ ボックスがクリックされるたびに、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 を返します。