我正在尝试使用以下代码创建一个包含单个列的表:
TableView<String> table = new TableView<String>();
table.getColumns().clear();
table.getColumns().add(new TableColumn<String, String>("City Name"));
table.setItems(cityList);
但是我得到一张表格,其中包含“城市名称”列,后面是空白列
我是JavaFx的新手,所以可能有更好的方法。
答案 0 :(得分:14)
我记得曾经试图通过在过去使用css属性来“删除”空白列而没有运气。解决方法是,
- 设置cityColumn
的pref宽度以手动覆盖整个空间:
TableColumn<String, String> cityColumn = new TableColumn<String, String>("City Name");
cityColumn.setPrefWidth(table.getPrefWidth() - 2);
-2
表示边框宽度。您还可以直接将列宽属性绑定到表宽度属性,从而在调整表宽度时自动更新col宽度。请参阅此答案https://stackoverflow.com/a/10152992/682495
或者,
- 将列调整大小策略设置为CONSTRAINED_RESIZE_POLICY
:
table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);