[英]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.