Подтвердить что ты не робот

JavaFX: скрыть слайдер/разделитель SplitPane

У меня есть приложение JavaFX с SplitPane. Я хочу скрыть ползунок/разделитель SplitPane. Как я могу это сделать?

Привет из Германии (извините за мой английский)

Julian

4b9b3361

Ответ 1

Его немного отличается в Java FX8 (стиль modena):

.split-pane *.split-pane-divider {
    -fx-padding: 0 1 0 1;
}

Ответ 2

В caspian.css вы увидите

/* horizontal the two nodes are placed to the left/right of each other. */
.split-pane:horizontal > * > .split-pane-divider {
   -fx-border-color: transparent -fx-box-border transparent #BBBBBB;
   -fx-background-color: transparent, -fx-inner-border-horizontal;
   -fx-background-insets: 0, 0 1 0 1;
}

/* vertical the two nodes are placed on top of each other. */
.split-pane:vertical > * > .split-pane-divider {
   -fx-border-color:  #BBBBBB transparent -fx-box-border transparent;
   -fx-background-color: transparent, -fx-inner-border;
   -fx-background-insets: 0, 1 0 1 0;
}

Я использую вертикальный, поэтому я переопределил вертикальный в моем CSS, как показано ниже:

.split-pane:vertical > * > .split-pane-divider {
   -fx-border-color:  transparent;
   -fx-background-color: transparent;
   -fx-background-insets: 0;
}

И это работает. Если вы тоже хотите скрыть захватчики (например, я не скрывал это, это кажется приятным), я думаю, что следующее правило может сделать трюк:

.split-pane *.vertical-grabber {
    -fx-padding: 0;
    -fx-background-color: transparent;
    -fx-background-insets: 0;
    -fx-shape: " ";
}

Надеюсь, это поможет.

Ответ 3

Эти другие ответы по-прежнему оставались тонкой серой полосой, поэтому в моем CSS я добавил:

.split-pane-divider {
   -fx-background-color: transparent;
}

Ответ 4

Поздно, но это как сделать это правильно, а не обходить его с помощью CSS:

for (Node node : splitPane.lookupAll(".split-pane-divider")) {
    node.setVisible(false);
}

Ответ 5

Еще одна заметка:

Разделитель показывает между дочерними элементами в списке элементов Split Pane. Если ваша разделенная панель содержит только один элемент, разделитель не появится. Если ваша разделенная панель имеет 3 элемента, появятся 2 разделителя. Если вам не нужен разделитель, вам может не понадобиться элемент в разделенной панели все вместе.

Ответ 6

SplitPane.Divider не наследуется от Node, поэтому он не имеет disableProperty.

Если вам нужно изменить область разбиения, просто используя код, вы можете скрыть разделитель через CSS, чтобы он был невидим и имел размер около 0.

В противном случае используйте AnchorPane, вложенный в VBox