JavaFX:隐藏SplitPane的滑块/分隔线

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaFX:隐藏SplitPane的滑块/分隔线相关的知识,希望对你有一定的参考价值。

我有一个带有SplitPane的JavaFX应用程序。我想隐藏SplitPane的Slider / Divider。我怎样才能做到这一点?

来自德国的问候(对不起我的英语)

朱利安

答案

它与Java FX8(摩德纳风格)略有不同:

.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

以上是关于JavaFX:隐藏SplitPane的滑块/分隔线的主要内容,如果未能解决你的问题,请参考以下文章

闪亮的应用程序不更新隐藏的滑块

JavaFX: 布局SplitPane

JavaFX作业[重复]

根据 Maya 时间线移动 PyQt 滑块

JavaFX SceneBuilder:如何让textarea填充窗格?

如何从 WatchKit 滑块中隐藏“+”和“-”按钮?