JavaFX8:隐藏/删除TableView

时间:2018-05-11 14:48:12

标签: javafx-8

我想在TableView中隐藏或删除垂直滚动条。我想用我自己的PgUp / PgDown按钮来管理滚动。

按钮可以正常使用下面的代码,但verticalScrollBar会破坏所需的方面。我该如何隐藏/删除它?

    btnPgDown.setOnAction(e -> {
        if (table.getSelectionModel().getSelectedIndex() == -1) {
            table.getSelectionModel().select(0);
        }
        Event.fireEvent(table, EventUtil.PG_DN_PR_EVENT);
        table.requestFocus();
    });

注意:EventUtil.PG_DN_PR_EVENT模拟PgDown键事件。

2 个答案:

答案 0 :(得分:1)

根据我的经验,TableView是否显示ScrollBar取决于ScrollBar上的按钮和箭头。

在我的项目中,我使用此CSS代码隐藏两个滚动条

.table-view *.increment-button,
.table-view *.decrement-button,
.table-view *.increment-arrow,
.table-view *.decrement-arrow
{
    -fx-padding: 0;
    -fx-shape: "";
}

但这有副作用,因为显然TableMenuButton使用相同的填充TableMenuButton消失,填充为0,所以我唯一看到的是“ +”符号的一半通常显示在按钮上。因此,这是一种方式,但不一定是 方式。

答案 1 :(得分:1)

我认为隐藏TableView滚动条的最佳方法是使用CSS代码。

这是垂直滚动条的代码。

.table-view *.scroll-bar:vertical *.increment-button,
.table-view *.scroll-bar:vertical *.decrement-button {
    -fx-background-color: null;
    -fx-background-radius: 0;
    -fx-background-insets: 0;
    -fx-padding: 0;
}

.table-view *.scroll-bar:vertical *.increment-arrow,
.table-view *.scroll-bar:vertical *.decrement-arrow {
    -fx-background-color: null;
    -fx-background-radius: 0;
    -fx-background-insets: 0;
    -fx-padding: 0;
    -fx-shape: null;
}

如果您还想隐藏水平滚动条,则必须添加相同的代码,但将*.scroll-bar:vertical更改为*.scroll-bar:horizontal

如果要按代码滚动表,我建议使用TableView类中包含的方法scrollTo