JavaFx 2使用单列创建TableView

Ayu*_*lik 7 java layout tableview javafx-2

我正在尝试使用以下代码创建一个包含单个列的表:

TableView<String> table = new TableView<String>();
table.getColumns().clear();
table.getColumns().add(new TableColumn<String, String>("City Name"));
table.setItems(cityList);
Run Code Online (Sandbox Code Playgroud)

但是,我得到一个表格,其中包含"城市名称"列,后面是空白列

我是JavaFx的新手,所以可能有更好的方法.

Ulu*_*Biy 14

我记得在过去没有运气的情况下尝试通过使用css属性自行"删除"空白列.解决方法是,
- 设置pref宽度cityColumn以手动覆盖整个空间:

TableColumn<String, String> cityColumn = new TableColumn<String, String>("City Name");
cityColumn.setPrefWidth(table.getPrefWidth() - 2);
Run Code Online (Sandbox Code Playgroud)

-2用于边框宽度.您还可以直接将列宽属性绑定到表宽度属性,从而在调整表宽度时自动更新col宽度.请参阅此答案/sf/answers/710709471/.
或者,
- 将列调整大小策略设置为CONSTRAINED_RESIZE_POLICY:

table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
Run Code Online (Sandbox Code Playgroud)

  • 您只需要CONSTRAINED_RESIZE_POLICY即可 (9认同)
  • 最后去了CONSTRAINED_RESIZE_POLICY. (2认同)