可调整大小的列上的 JavaFX TableColumn setPreferredWidth

JavaFX TableColumn setPreferredWidth on a Resizable Column

我有一个包含三列的 table,我想确保列的总宽度等于 table 的宽度,所以我使用 CONSTRAINED_RESIZE_POLICY.

我希望列以我指定的宽度开始,但可以由用户修改。

如果我这样做:

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);

列的大小是我想要的:

但是,如果我将 setResizable() 更改为 true,那么所有列的大小都会变得相同:

关于如何解决这个问题有什么建议吗?

将首选宽度的设置简化为 column.setPreferredWidth ( 200 ) 之类的东西没有任何区别。宽度始终在所有列之间平均分配。

有没有办法设置列的首选宽度(或实际宽度),同时仍允许用户调整这些列的大小?

好像CONSTRAINED_RESIZE_POLICY是从列的最大宽度的比例开始的。以 4:2: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);

刚好需要收音机的时候,这个方法或许能解决问题