[英]JavaFX: How to disable ScrollBars in TableView
我有一个 JavaFX TableView
,当父节点调整得太小而无法显示数据时,我希望表格行为截断TableView
的图像,而不是它变得可滚动。 澄清一下,我只是希望滚动条被禁用或不可见,所以它们不会出现。
下面是我在 SceneBuilder 中的节点层次结构,以防万一。
我在下面尝试过的事情
我读了这篇文章,但答案只是使单元格调整大小以适应宽度,而不是禁用ScrollBar
。 我在这里阅读了关于ScrollBar
的文档,但我找不到visible
或enabled
属性。 我也在这里阅读了TableView
文档,但没有运气。
我在这里搜索了 JavaFX CSS 指南,发现下面有两个策略可以引用滚动窗格。
-fx-hbar-policy:
-fx-vbar-policy:
但是将TableView
包装在ScrollPane
中没有按预期工作。 它不允许我“适应父母”。 我想引用这些属性,但如果可能的话,直接在TableView
引用。 任何建议都非常感谢。
完全隐藏滚动条,无论它们是否“应该”显示,都可以使用以下 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
在父级太小时缩小,请将最小尺寸设置为使用首选项尺寸:
table.setMinSize(Region.USE_PREF_SIZE, Region.USE_PREF_SIZE);
如果您不希望TableView
超出其首选大小,请对最大大小执行相同操作。 如果需要,您还可以提供明确的首选项大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.