gpt4 book ai didi

css - 如何在JavaFX元素中使用CSS文件?

转载 作者:行者123 更新时间:2023-11-28 08:26:01 25 4
gpt4 key购买 nike

我正在尝试构建一个 JavaFX 应用程序,我想在 FXML 文件 中附加 CSS 文件 但是当我尝试运行应用程序,我遇到类似问题:Property "stylesheets"does not exist or is read-only. 在控制台中,我不知道到底是什么问题(请注意,如果我删除了 CSS 文件一切正常)。CSS 文件“csstyle.css”包含:

/*
* Empty Stylesheet file.
*/

.mainFxmlClass {
-fx-background-color: blue;
}

我还在 FXML 文件Stylesheet 中写了 CSS 文件 的名称也在 Style Class:.mainFxmlClass。所以我想知道错误请帮助我,谢谢 :)

最佳答案

你有两个问题:

第一个已经解决了here .移除

stylesheets="@csstyle.css"

并将其添加到 <children> 之后根容器的标签。由于您没有显示 FXML 文件的情况,因此它应该是这样的:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.*?>
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import java.net.*?>

<AnchorPane styleClass="mainFxmlClass" ...>
<children>
...
</children>
<stylesheets>
<URL value="@cssstyle.css" />
</stylesheets>
</AnchorPane>

第二个是这个:

styleClass=".mainFxmlClass"

删除点:

styleClass="mainFxmlClass"

编辑

鉴于这些解决方案不起作用,而且 OP 使用 JDK 7 和 JavaFX 2.0 的事实,这些其他解决方案可能会有所帮助:

替换:

styleClass="mainFxmlClass"

与:

<styleClass>
<String fx:value="mainFxmlClass"/>
</styleClass>

所以您的 FXML 将是这样的:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.*?>
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import java.net.*?>

<AnchorPane ...>
<children>
...
</children>
<styleClass>
<String fx:value="mainFxmlClass"/>
</styleClass>
<stylesheets>
<URL value="@cssstyle.css" />
</stylesheets>
</AnchorPane>

再试一次。

最后,如果它不起作用,请删除 <stylesheets>标签,并在场景中设置样式表文件:

Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("cssstyle.css").toExternalForm());

所以您的 FXML 将是这样的:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.*?>
<?import java.lang.*?>
<?import javafx.scene.control.*?>

<AnchorPane ...>
<children>
...
</children>
<styleClass>
<String fx:value="mainFxmlClass"/>
</styleClass>
</AnchorPane>

确实建议将 JavaFX 更新到更新的版本(2.2.45 是 Java 7 的最后一个版本),并从添加的许多新功能中受益。

关于css - 如何在JavaFX元素中使用CSS文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28526892/

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