У меня есть приложение JavaFX с SplitPane
. Я хочу скрыть ползунок/разделитель SplitPane
. Как я могу это сделать?
Привет из Германии (извините за мой английский)
Julian
У меня есть приложение JavaFX с SplitPane
. Я хочу скрыть ползунок/разделитель SplitPane
. Как я могу это сделать?
Привет из Германии (извините за мой английский)
Julian
Его немного отличается в Java FX8 (стиль modena):
.split-pane *.split-pane-divider {
-fx-padding: 0 1 0 1;
}
В 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: " ";
}
Надеюсь, это поможет.
Эти другие ответы по-прежнему оставались тонкой серой полосой, поэтому в моем CSS я добавил:
.split-pane-divider {
-fx-background-color: transparent;
}
Поздно, но это как сделать это правильно, а не обходить его с помощью CSS:
for (Node node : splitPane.lookupAll(".split-pane-divider")) {
node.setVisible(false);
}
Еще одна заметка:
Разделитель показывает между дочерними элементами в списке элементов Split Pane. Если ваша разделенная панель содержит только один элемент, разделитель не появится. Если ваша разделенная панель имеет 3 элемента, появятся 2 разделителя. Если вам не нужен разделитель, вам может не понадобиться элемент в разделенной панели все вместе.
SplitPane.Divider
не наследуется от Node
, поэтому он не имеет disableProperty
.
Если вам нужно изменить область разбиения, просто используя код, вы можете скрыть разделитель через CSS, чтобы он был невидим и имел размер около 0.
В противном случае используйте AnchorPane
, вложенный в VBox