JTreeTableを構築しています。私はいくつかの初心者コードを見つけ、かなり遠くに来ました。最終的に私の目標は、階層的なリストのように異なるレベルで異なるデータを持つことができるようにすることです。JTreeTableの動的列
現在、私はさまざまなレベルでデータを扱っています。しかし、私は次の目標として列を変更することになると壁に向かって走っています。私は現在、私は3より、マイルストーン持って立ってどこから:
- を
- 異なるレベルの列の異なるセットを表示するさまざまなレベル
- の列の幅を調整する能力テーブルのJTreeの部分が常に左にとどまることを確認私はこのタスクを手仕舞いに近いが、再びJTreeTableが複雑で作成するので、これらの3
の最初で立ち往生しています
、ミニム
が、私はこれらのクラスのいずれかにコードを投稿して幸せですが、私も役に立たないコードとの質問を詰まらせたくありませんでした:ええと例では、画像内に以下に挙げるいくつかのクラスを利用しています。まず、私が望む機能を見せてください。
第1の画像は、最上位が選択され、第2の画像が第2のレベルが選択されたときである。どのように列が異なるかに注目してください。それが私のアプリケーションで起こりたいことです。
トップレベル選択:
をセカンドレベルが選択:リストの選択があるとき
だから私はこの問題を解決しようとした一つの方法は、ありますこのコードセクション内で変更されました:
ListSelectionListener listener = (ListSelectionEvent e) -> {
TreeTableModelAdapter adapter = (TreeTableModelAdapter) JTreeTable.this.getModel();
//Need to see why this breaks.
JTreeTable.this.getTableHeader().setColumnModel(adapter.getColumnModel());
};
this.getSelectionModel().addListSelectionListener(listener);
このコードはJTreeTableの初期化中です。私はTableHeaderとテーブルの両方で列モデルを設定しようとしました。以下は、私が行を選択すると、次に何が起こるかです:
列がちょうど私に消えます。任意の方向は非常に参考になる
public TableColumnModel getColumnModel(){
DefaultTableColumnModel model = new DefaultTableColumnModel();
for(int i=0;i<getColumnCount();i++){
TableColumn column = new TableColumn();
column.setIdentifier(getColumnName(i));
model.addColumn(column);
}
return model;
}
:列モデルの作成は、以下の方法でTreeTableModelAdapter
クラスで起こっています。もう一度、質問に答えるのに役立つと思われるコードを投稿してください。コメントを入れてすぐに追加します。