2017-10-23 6 views
1

私はシーンビルダで、モダナの高コントラストのテーマが存在することに気付きました。javafx - 高コントラストのテーマを正しく使用するにはどうすればいいですか?

正しく使用するにはどうすればよいですか?私は、クロスプラットフォームまたは実装方法を意味します。

jfxrt.jar \ com \ sun \ javafx \ scene \ control \ skin \ modenaのOracle実装のjfxrt.jarの中にyellowOnBlack.cssとwhiteOnBlack.cssが存在することに気づきました。

CSSをコピーしたり特定の実装のパスを参照したりせずに適用するにはどうすればよいですか?

ありがとうございます。

+0

'Application.setUserAgentStylesheet()'を使用してURLを指定せずにプログラムにどのように変更するかについては、 'STYLESHEET_CASPIAN'や' STYLESHEET_MODENA'のような 'Application'クラスの定数ではないのであまり分かりません。しかし、WindowsではAlt +左​​Shift + Print Screenを使って高コントラストのテーマに手動で変更することができるので、このイベントが作成され、実行される可能性がありますが、それが機能するかどうかはわかりません。 –

答えて

1

this bug reportによれば、これはコマンドラインオプション-Dcom.sun.javafx.highContrastThemeで設定できます。有効な値は、yellowOnBlack,whiteOnBlack、またはblackOnWhiteです。

I.e.あなたはおそらくプロパティを早期に設定されていることを確認する必要があるが、私はこれをテストしていませんが、System.setProperty(...)経由でプログラム的にこれを設定することも可能である

java -Dcom.sun.javafx.highContrastTheme=yellowOnBlack com.example.MyApp 

例えば

、を使用してアプリケーションを実行することができますアプリケーションのライフサイクルで十分です(アプリケーションクラスがロードされる前でさえ)。

+0

それは動作します。私はjavafxがこれを行う良い方法だと思っていますが、現在のところ、(それがそうであるように)動作する唯一の解決策です。 –

関連する問題