可调整大小的列上的 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);
刚好需要收音机的时候,这个方法或许能解决问题
我有一个包含三列的 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);
刚好需要收音机的时候,这个方法或许能解决问题