我有一个JavaFX TableView,当父节点大小太小而不能显示数据时,我希望表行为截断TableView的图像,而不是使其成为可滚动的。为了澄清,我只是希望滚动条被禁用或不可见,这样它们就不会出现。
下面是我在SceneBuilder中的节点层次结构,以防有帮助。

Things我在下面尝试过
我读过这个职位,但答案只是使单元格调整大小以适应宽度,而不是禁用ScrollBar。我阅读了ScrollBar的这里上的文档,但找不到visible或enabled属性。我还不走运地阅读了TableView文档这里。
我搜索了JavaFX CSS指南这里,发现下面有两个策略可以引用一个滚动窗格。
-fx-hbar-policy:
-fx-vbar-policy:但是,将TableView封装在ScrollPane中并不像预期的那样有效。它不允许我“适合父母”。我想提到这些属性,但如果可能的话,可以直接在TableView中引用。如有任何建议,将不胜感激。
发布于 2019-03-11 01:15:22
无论滚动条是否“应该”显示,完全隐藏滚动条都可以通过以下CSS实现:
.table-view .scroll-bar * {
-fx-min-width: 0;
-fx-pref-width: 0;
-fx-max-width: 0;
-fx-min-height: 0;
-fx-pref-height: 0;
-fx-max-height: 0;
}如果要禁用所有滚动,则可以向TableView添加事件筛选器。
table.addEventFilter(ScrollEvent.ANY, Event::consume);
// or if you only want to disable horizontal scrolling
table.addEventFilter(ScrollEvent.ANY, event -> {
if (event.getDeltaX() != 0) {
event.consume();
}
});如果您不希望当父程序太小时TableView收缩,那么将min大小设置为使用pref大小:
table.setMinSize(Region.USE_PREF_SIZE, Region.USE_PREF_SIZE);如果您不希望TableView增长超过它的pref大小,那么对最大大小也要这样做。如果需要,还可以给出一个显式的pref大小。
https://stackoverflow.com/questions/55093764
复制相似问题