我有以下问题:我想禁用TableView的水平滚动条。它可能不可见,但TableView也可能无法水平滚动。可以在CSS中设置水平滚动条的可见性:
.table-view *.scroll-bar:horizontal *.increment-button,
.table-view *.scroll-bar:horizontal *.decrement-button {
-fx-background-color: null;
-fx-background-radius: 0;
-fx-background-insets: 0;
-fx-padding: 0;
}
.table-view *.scroll-bar:horizontal *.increment-arrow,
.table-view *.scroll-bar:horizontal *.decrement-arrow {
-fx-background-color: null;
-fx-background-radius: 0;
-fx-background-insets: 0;
-fx-padding: 0;
-fx-shape: null;
}
来源: How to hide the horizontal Scrollbar of a ListView in JavaFX和https://community.oracle.com/thread/2377826?tstart=0。
这样可以正常工作,但我仍然可以水平滚动TableView(虽然滚动条不可见)。我已将列宽设置如下:
col1.setPrefWidth(table.getPrefWidth()*0.40);
col2.setPrefWidth(table.getPrefWidth()*0.20);
col3.setPrefWidth(table.getPrefWidth()*0.20);
当TableView不显示任何行时,此方法有效。但是当我填充它(通过按下按钮)时,列会稍微拉伸,这使得TableView可以水平滚动。
是否只能隐藏滚动条,还是可以禁用滚动本身?
非常感谢任何帮助!
答案 0 :(得分:4)
尝试设置
table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
没有设置列的pref宽度。