JavaFX CSS错误(属性样式表不存在)

时间:2014-02-08 18:05:31

标签: java css intellij-idea javafx

我刚刚开始使用最新的Java7 SDK在IntelliJ中构建JavaFX应用程序。

我使用Oracle Scene Builder构建了我的界面,所有内容都在预览中运行并显示正常,但是当我尝试编译程序时,我收到以下错误

`Property "stylesheets" does not exist or is read-only`

根据JavaFX文档判断我的FXML中的行stylesheets="@MainView.css"似乎无效。

有人知道我为什么会收到这个错误吗? (如果我删除样式表的链接,我的程序编译得很好,所以问题仅在于样式表,我很难过!)

4 个答案:

答案 0 :(得分:6)

您在Scene Builder 2中创建了一个FXML并在JDK 7中运行.SB 2"尝试"创建Java 8兼容的FXML代码。修复FXML:

  1. 删除stylesheets="@MainView.css"属性
  2. 在导入中添加<?import java.net.*?>
  3. </children>后面的父窗格末尾添加以下代码(在我的情况下,它位于</AnchorPane>之前):

    <stylesheets>
      <URL value="@MainView.css" />
    </stylesheets>
    

答案 1 :(得分:4)

事实证明我需要在start()方法中手动链接样式表,因为JavaFX7不支持样式表标记。

为了解决这个问题,我在Start()方法中调用了以下命令

root.getStylesheets().add(this.getClass().getResource("view/MainView.css").toExt‌​ernalForm());

root是我的FXMLLoader的名称。

答案 2 :(得分:2)

当我尝试在程序中设置自己的CSS属性时,我遇到了同样的错误。如果你不这样做,你可能正在使用一些使用JavaFX 8中引入的CSS library的类。

尝试将JDK更新为最新发布的版本here

如果这仍然不起作用,那么应用程序中某处的CSS文件无法正确读取。可能有一些类错误地映射了JavaFX bean属性。

答案 3 :(得分:0)

打开Scene Builder时出现此错误。

安装jdk1.8,将其设置为我的系统默认值(在/ usr / lib / jvm / default-java中)并修改我的$ PATH,其中没有一个似乎有帮助。

然后将Scene Builder从1.1更新到2.0,将1.1二进制文件链接到2.0版本(see this question),最后在Netbeans中设置新的Scene Builder路径 - &gt;工具 - &gt;选项 - &gt; Java - &gt; JavaFX解决了这个问题。更新默认的jdk版本可能与此有关,也可能没有。

项目本身已经使用了jdk1.8,我没有遇到麻烦;我只在Scene Builder中打开它们时遇到了问题(在问题标题中提到了错误)。