JTable の JPanels で構成される追加のヘッダーを作成しました。各 JPanel は、以下の JTable の対応する列と同じ幅にする必要があります。これは、幅が固定されている場合に機能します。ただし、JPanels の幅をその場で調整して、JTables 列のサイズを変更できるようにしたいと考えています。私はこれを機能させることができません。私の現在のアプローチは、FireColumnMarginChanged メソッドをオーバーライドする DefaultTableColumnModel を拡張することです。
private class MyTableColumnModel extends DefaultTableColumnModel{
@Override
protected void fireColumnMarginChanged(){
header.setWidth(table.getSelectedColumn(),table.getSelectedColumn()).getWidth());
super.fireColumnMarginChanged();
}
}
「ヘッダー」には setWidth(int column, int width) メソッドがあります。しかし、このアプローチにはいくつかの問題があります。
fireColumnMarginChanged は、最終的な幅が設定されたときに 1 回だけ発生するのではなく、列幅の変更中に常に発生します。
table.getSelectedColumn は、サイズ変更中の列ではなく、最後にクリックされた列を返します
その場でサイズ変更を行う簡単な方法があるかどうか、または私のアプローチが絶望的ではなく、何らかの方法で修正できるかどうかを知りたいです。私が得ることができるヒントをいただければ幸いです。