0

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 は、サイズ変更中の列ではなく、最後にクリックされた列を返します

その場でサイズ変更を行う簡単な方法があるかどうか、または私のアプローチが絶望的ではなく、何らかの方法で修正できるかどうかを知りたいです。私が得ることができるヒントをいただければ幸いです。

4

1 に答える 1