2017-05-04 36 views
1

私は3つの列を持つテーブルを持っており、列幅の合計がテーブルの幅と等しいことを確認したいので、CONSTRAINED_RESIZE_POLICYを使用しています。サイズ変更可能な列のJavaFX TableColumn setPreferredWidth

私が指定した幅で開始する列が必要ですが、ユーザーが変更することができます。

私はこれを行う場合:

私が望むよう列が大きさで
albumTable.setColumnResizePolicy (TableView.CONSTRAINED_RESIZE_POLICY); 
artistColumn.prefWidthProperty().bind(albumTable.widthProperty().multiply(0.4)); 
yearColumn.prefWidthProperty().bind(albumTable.widthProperty().multiply(0.2)); 
albumColumn.prefWidthProperty().bind(albumTable.widthProperty().multiply(0.4)); 
artistColumn.setResizable(false); 
yearColumn.setResizable(false); 
albumColumn.setResizable(false); 

good

をしかし、私はsetResizable()trueに変更した場合、その列はすべて同じ大きさになります。

bad

これをどのように修正することができますか?

好ましい幅の設定を簡略化すると、column.setPreferredWidth (200)のような違いはありません。幅は、常にすべての列間で均等に分割されます。依然としてこれらの列は、ユーザによってサイズ変更することを可能にしながら

列の好適な幅(又は実際の幅)を設定する方法はありますか?

答えて

1

CONSTRAINED_RESIZE_POLICYは、列の最大幅の比で始まるようです。無線機が必要な場合にだけ問題を解決することができる、4

tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY); 
column1.setResizable(true); 
column2.setResizable(true); 
column3.setResizable(true); 
column1.setMaxWidth(40000); 
column2.setMaxWidth(20000); 
column3.setMaxWidth(40000); 

この方法:2:4の比率で開始します。

+0

これは私のニーズに十分に適しているはずです。私はそれをテストし、それが動作するかどうかをお知らせします!ありがとう。 – JoshuaD

関連する問題