17

ネイティブ OS のハイ コントラスト モードを読み取って、製品に設定を適用する必要があります。Windowsの場合、次のようなことを行いました:

 try {
       Toolkit toolkit = Toolkit.getDefaultToolkit();
       boolean highContrast = (Boolean)toolkit.getDesktopProperty("win.highContrast.on" );
 }catch(Exception e) {
 }

これは Windows では問題なく動作しますが、Linux のハイ コントラスト設定を読み取るにはデスクトップ プロパティが必要です。Linux のデスクトップ プロパティを教えてください。

4

1 に答える 1

2

Javaを使用しているかどうかに関係なく、Linuxでハイコントラストモードをチェックする良い方法はないと思います(X11自体にはハイコントラスト機能がなく、Linuxには多種多様なUIフレームワークがあり、それぞれが独自の方法でハイコントラストを実装している可能性があります)。

厳密に言えば、Windows でもこれには多くの問題があります (こちらまたはこちらを参照)。

この問題を解決するには 2 つのオプションがあります。SystemColorクラスを使用して UI でシステム カラーを使用するか (それが必要な場合)、または現在の前景色と背景色のコントラストを分析するために同じクラスを使用します (状況を知る必要がある場合)。システムカラーはハイコントラストです)。システムテーマ名を確認することもできますが、かなり信用できない方法です。

于 2012-05-30T08:04:30.507 に答える