JavaFX8: скрыть / удалить вертикальную полосу прокрутки в TableView - PullRequest
0 голосов
/ 11 мая 2018

Я хотел бы скрыть или удалить вертикальную полосу прокрутки в моем 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 голосов
/ 25 октября 2018

Я думаю, что лучший способ скрыть полосы прокрутки в 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.

И если вы хотите прокрутить таблицу по коду, я рекомендую использовать метод scrollTo , который включен в класс TableView.

0 голосов
/ 28 июня 2018

Исходя из того, что я могу сказать, основываясь на своем собственном опыте, то, отображает ли 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, я вижу только одну половину знака "+", которая обычно отображается на кнопка. Таким образом, это способ , но не обязательно способ .

...