0

私のアプリケーションは SAF (jsr 296) を使用しています。異なるプラットフォームで異なるルック アンド フィールを使用したい:

Linux のデフォルト (Java)

Windows用のシステム(ネイティブ)。

追加: これまでのところ、アプリケーション クラスの startup() メソッドで Windows OS の L&F をハードコードしました (Joy と Thompson が提案したように):

if (SystemUtils.IS_OS_WINDOWS) {
        UIManager.setLookAndFeel(
            UIManager.getSystemLookAndFeelClassName());
}

application.properties ファイルでは、デフォルトの L&F が指定されています。

もっと良い方法はありませんか?

4

3 に答える 3

3

これを試して:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

アプリケーションが実行されているシステムに基づいてルック アンド フィールを設定します。

于 2011-07-22T09:11:35.540 に答える
3

Linux のデフォルト (Java)。..Windows 用のシステム (ネイティブ)。

if (System.getProperty("os.name").startsWith("Windows")) {
    try {
        UIManager.setLookAndFeel(
            UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Windows のルック アンド フィールをネイティブ PLAF に設定しますが、Linux/Unix では (デフォルトの) Metal PLAF を維持し、Mac ではデフォルトの名前を使用します。

com.apple.laf.AquaLookAndFeel

Linux/Unix マシンにはおそらく Nimbus をお勧めします。金属 PLAF はとても..最後の千年です。

于 2011-07-22T09:24:45.060 に答える
0

そのために多くのコードは必要ありません。プラットフォーム固有のプロパティ ファイルを作成するか、アプリケーション プロパティで「システム」LnF を使用できます。詳細はhttp://kenai.com/projects/bsafを参照

于 2011-07-22T19:57:28.647 に答える