簡體   English   中英

JavaFX:如何在 TableView 中禁用滾動條

[英]JavaFX: How to disable ScrollBars in TableView

我有一個 JavaFX TableView ,當父節點調整得太小而無法顯示數據時,我希望表格行為截斷TableView的圖像,而不是它變得可滾動。 澄清一下,我只是希望滾動條被禁用或不可見,所以它們不會出現。

下面是我在 SceneBuilder 中的節點層次結構,以防萬一。

在此處輸入圖片說明

我在下面嘗試過的事情

我讀了這篇文章,但答案只是使單元格調整大小以適應寬度,而不是禁用ScrollBar 我在這里閱讀了關於ScrollBar的文檔,但我找不到visibleenabled屬性。 我也在這里閱讀了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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM