作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建一个 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/
我是一名优秀的程序员,十分优秀!