gee*_*que 1 css java javafx tableview
我有一个 JavaFX TableView,我希望表行为TableView在父节点大小调整得太小而无法显示数据时截断图像,而不是使其变得可滚动。为了澄清,我只是希望滚动条被禁用或不可见,这样它们就不会显示。
下面是我在 SceneBuilder 中的节点层次结构,以防有帮助。
我在下面尝试过的事情
我读了这篇文章,但答案只是使单元格调整大小以适应宽度,而不是禁用ScrollBar. 我在这里ScrollBar阅读了有关s的文档,但找不到 a或属性。我也阅读了这里的文档,但没有运气。visibleenabledTableView
我在这里搜索了JavaFX CSS指南,发现下面有两个策略可以引用滚动窗格。
-fx-hbar-policy:
-fx-vbar-policy:
Run Code Online (Sandbox Code Playgroud)
但将 包裹TableView在 a 中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;
}
Run Code Online (Sandbox Code Playgroud)
如果您想禁用所有滚动,则可以将事件过滤器添加到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();
}
});
Run Code Online (Sandbox Code Playgroud)
如果您不希望TableView当父级变得太小时缩小,请设置最小大小以使用首选大小:
table.setMinSize(Region.USE_PREF_SIZE, Region.USE_PREF_SIZE);
Run Code Online (Sandbox Code Playgroud)
如果您不希望TableView超出其首选大小,请对最大大小执行相同的操作。如果需要,您还可以给出明确的首选项大小。