gpt4 book ai didi

javafx - 为什么 anchor Pane 是透明的,而拆分 Pane 不是? (javafx)

转载 作者:行者123 更新时间:2023-12-02 01:00:56 25 4
gpt4 key购买 nike

我想创建一个由两个锚定 Pane 组成的窗口。

我想为根锚定 Pane 设置背景图像,并将第二个放在它上面。所以我希望,预览现在应该看起来是:一个白色空间(第二个 anchor Pane )被根 anchor Pane 的背景图像的边缘包围为一个框架。但是第二个 anchor Pane 似乎是透明的,因为如果我进行测试,我可以看到整个背景图像。

没有设置不透明度等...

(我不明白,因为例如分割平面不是透明的......虽然我开始明白,这些 Pane 和分割 Pane 在某些质量方面是不一样的,但我不不知道为什么会这样。)

您怎么看,解决前一个问题的最佳实践是什么?谢谢!

最佳答案

Pane 子类默认是透明的。 Control 子类由默认 CSS 样式表设置样式,因此它们的背景颜色由样式决定。 SplitPane 是一个控件,所以它的背景颜色由 default CSS stylesheet 决定.这会将背景颜色设置为查找颜色 -fx-background(第 611 行),默认为基色(# ececec).

更改锚定 Pane 背景的最佳方法是使用外部 css 文件。 (这意味着您可以将应用程序的样式/外观与实际应用程序代码分开。)向 anchor Pane 添加一个 id:

AnchorPane maskingPane = new AnchorPane();
maskingPane.setId("masking-pane");

然后在你的外部css文件中,你可以做

#masking-pane {
-fx-background-color: white ;
}

或者,如果您想获得与拆分​​ Pane 相同的颜色:

#masking-pane {
-fx-background-color: -fx-background ;
}

id 应该是唯一的;如果您有多个要制作相同颜色的 Pane ,则可以改为向它们添加样式类:

AnchorPane maskingPane = new AnchorPane();
maskingPane.getStyleClass().add("masking-pane");

然后CSS看起来像

.masking-pane {
-fx-background-color: white ;
}

Oracle JavaFX 教程有一个 section on styling the application with CSS

关于javafx - 为什么 anchor Pane 是透明的,而拆分 Pane 不是? (javafx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28755299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com