2014-02-08 53 views
9

我剛剛開始使用最新的Java7 SDK在IntelliJ中構建JavaFX應用程序。JavaFX CSS錯誤(屬性樣式表不存在)

我已經建立了使用Oracle場景生成器,一切都運行並顯示在預覽罰款我的界面,但是當我嘗試編譯我的程序,我得到以下錯誤

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

來看對JavaFX的文檔行stylesheets="@MainView.css"在我的FXML中不會顯示無效。

有人知道我爲什麼得到這個錯誤嗎? (如果我刪除鏈接到我的程序編譯就好樣式表,所以問題與樣式表僅僅在於,我難倒!)

回答

4

原來我需要在我開始手動鏈接樣式表()方法JavaFX7不支持樣式表的標籤。

爲了解決這個問題我在我的start()方法

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

哪裏root是我FXMLLoader的名字叫下面的命令。

2

我有,當我試圖把我自己的CSS同樣的錯誤屬性在我的程序中。如果您沒有這樣做,那麼您可能正在使用某些使用JavaFX 8中引入的CSS library的類。

嘗試將JDK更新到最新發布版本here

如果這仍然不起作用,那麼在你的應用程序當中一個CSS文件不被正確讀取。可能有一些JavaFX bean屬性的類被錯誤映射。

+0

嗨Loa,感謝您的建議。 我更新到JDK8並且問題已修復,但是我需要在JDK7上交付項目,我找到了解決方案,如果您有興趣,我想我會與您分享。 ().getResource(「view/MainView.css」)。toExternalForm());在你的start其中root是你的FXMLLoader的名字:) – Alex

+0

哦,謝謝你分享這個,我將把你的問題定義爲我的最愛之一。很高興幫助你一點。我希望你能完成你的項目。祝你好運! :) – Loa

+0

非常歡迎!再次感謝 :) – Alex

0

打開場景生成器時出現此錯誤。

安裝了jdk1.8,將它設置爲我係統的默認值(在/ usr/lib/jvm/default-java中)並修改了我的$ PATH,其中沒有一個幫助。

然後將Scene Builder從1.1更新到2.0,將1.1二進制文件鏈接到2.0版本(see this question),最後在Netbeans - > tools - > options - > Java - > JavaFX中設置新的Scene Builder路徑,問題。更新默認的jdk版本可能與它有關係,也可能沒有。

項目本身使用jdk1.8已經和我沒有任何麻煩,運行它;我只有在場景生成器中打開它們時遇到了問題(在問題標題中提到了該錯誤)。

6

你正在創建中的場景生成器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>