2011-06-28 94 views
3

我試着在JavaFX 2.0中使用CSS。但它不起作用。我試圖導入CSS文件:在JavaFX 2.0中使用CSS

// Import CSS 
Group root = new Group(); 
Scene scene = new Scene(root, 300, 250, Color.LIGHTGREEN); 
scene.getStylesheets().add("example.css"); 

但NetBeans的總是拋出以下異常:

警告: com.sun.javafx.css.StyleManager $ 2運行 資源 「零」 未找到。

我試圖把CSS文件在項目目錄,進入src目錄,並使用絕對路徑:"C:\\Users\\janus\\Documents\\NetBeansProjects\\example.css"

沒有解決的問題

+0

同樣的事情發生在我身上。仍然沒有答案。 –

回答

16

在你的src文件夾添加:

src/resources/css/yourStyle.css 

然後添加以下代碼:

scene.getStylesheets().add("resources/css/yourStyle.css"); 
+0

Works,但我會有興趣知道爲什麼路徑似乎是相對於「src」文件夾 – personne3000

+0

哇!有用!我怎麼能知道這個? – Alex

3

我遇到了麻煩,這個太多,但得到它使用類似這樣的東西:

String cssPath = "/com/yourdomain/resources/style.css"; 
scene.getStylesheets().addAll(cssPath); 

更改cssPath的值以匹配包含您的css文件的包。

+0

很好 - 在這件事情上感到沮喪時,我的頭髮被撕裂了。第一個爲我工作的修補程序(此外還需要清理和重建)。 –

+0

'scene.getStylesheets()。add(「/ com/yourdomain/resources/style.css」);'應該很好 –

6

如果您的CSS文件位於同一個包中,則此方法有效。

scene.getStylesheets().add(YourClazz.class.getResource("myCssFile.css").toExternalForm()); 
1

我發現這整個的CSS問題是可以解決的,使用NetBeans的時候,去到項目屬性 - 運行 - 獨立應用程序屬性 - 工作目錄,並選擇所在的目錄.css文件的路徑和/或主要課程。我不知道什麼(Windows)作爲默認使用,可能是一個臨時目錄。如果是,那麼在那裏沒有.css文件,你會得到空指針異常。

0

其中一個可能的原因是您需要清理並在運行之前重新構建您的項目。

+0

Hello Henry,歡迎來到SO ...請詳細解答 – Andrew

-1
scene.getStylesheets().add(getClass().getResource("YourCSSFile.css").toString()); 
0

有很多建議把你的css文件放在不同的地方,但這對我來說很有用。 添加到項目中的任何文件都必須位於NetBeans創建的項目主目錄中。例如,如果您的項目名稱是HiJohn,並且它位於/NetBeansProjects/HiJohn中,則需要將.css文件放在HiJohn目錄中,您可以使用style.css來引用它。

對於我自己,我在我的NetBeans項目中創建了一個名爲resources的資源文件夾。這使得它,所以我可以利用的資源/ style.css中或resources/settings.xml

如果您還有疑問這裏是獲得了基礎知識的重要資源accesss在資源文件夾中的所有文件:

http://docs.oracle.com/javafx/2/css_tutorial/jfxpub-css_tutorial.htm

祝你好運!

0
"file:/"+ new File("styles/intro.css").getAbsoluteFile().getPath() 
        .replaceAll(" ", "%20"); 
0

在Eclipse中,我發現我可以使IDE能夠找到的CSS文件如下:

在你的工作區爲你的css文件創建一個文件夾(我有最可靠的成功把它放在src當前項目的文件夾)。在項目Properties> Resources> Linked Resources中,您可以創建一個新變量並使用現有變量來定義一個簡單的路徑(例如,創建一個名稱:RESOURCES並點擊變量,選擇PROJECT_LOC,點擊Extend,選擇/導航到文件夾你創建的)。有什麼不錯的是,Eclipse會立即顯示您選擇的位置,並在您嘗試引用無法找到的位置時提醒您。

在您的代碼中,您的路徑現在只是「RESOURCES/[fileName.css]」。

0

用途:

root.getStyleSheet().add(
    youclass.class.getResources("YourCSSFileWichIsinYourDefaultPackage").toExternalForm() 
);