2012-01-25 2 views
3

私は、他の人が使用するライブラリの一部としてそれらを配布するために、多くのJavaFX 2クラスをサブクラス化しています。これには、スタイルシート(ライブラリの一部)をMySceneClassのすべてのインスタンスに適用する必要があります(実際の名前ではありません:-))、正しいパスマジックを見つけることができません。 、おそらくいくつかの他のパスの先頭部分をトリミングし、バリアント私は先頭のスラッシュが含まれていない試してみた:com.mine.cssは、ライブラリのパッケージですJavaFX 2:ライブラリの一部として配布されるSceneサブクラスにスタイルシートを読み込む方法は?

mySceneInstance.getStylesheets.addAll("/com/mine/css/MySceneClass.css") 

:私はのバリエーションを試してみました。しかし、私は常にメッセージを取得:

WARNING: com.sun.javafx.css.StyleManager loadStylesheet Resource "/com/mine/css/MySceneClass.css" not found. 

私もCSSのパッケージにスタブCSSクラスを入れ、その後、私はに渡すことができるURLを取得するために

com.mine.css.Css.getResource("Scene.css") 

を使用して試してみたの。.. .getStyleSheets.addAll(...)が、私はそうするとき、私はのようなメッセージが出ます:のgetResourceが正しくファイルを識別しているようだとして、非常に紛らわしいですが、私はまだロードすることはできません

WARNING: com.sun.javafx.css.StyleManager loadStylesheet Resource "../css/Scene.css" not found. 

をそれ。

これはOS Xの現在の開発者向けプレビュー版です(私はバージョンが2.1 09だと思います)。アンサンブルのサンプルに見られるような任意の助け

おかげで、 ケン

+0

申し訳ありませんが、私は上記の間違いを犯しました。com.mine.css.Css.getResource( "Scene.css")は文字列ではなくヌルを返しました。 – user890204

答えて

12

は、私はこれだけの構文で運を持っていた:

scene.getStylesheets().addAll(Ensemble2.class.getResource("ensemble2.css").toExternalForm()); 
+1

この回答は一般的に正しいので、あきらかにしてください。元の質問者の特定の状況には適用されませんが、これはツールの問題となりました。 –

+0

私はまだすべてを試しましたが、私はまだhvエラー –

2

は最後に、によってあるIntelliJ IDEA CEに問題を突き止めデフォルトではではありませんは、ソースからターゲットディレクトリにコピーする必要があるリソースとしてCSSファイルを認識します。認識されたリソースタイプのリストに* .cssパターンを追加することで問題は解決されました。