5

私はJavaSwingでアプリケーションを構築しており、次のコードを使用してUIにネイティブOSの外観を与えています。

try {
  UIManager.setLookAndFeel(
    UIManager.getSystemLookAndFeelClassName());
  } catch (Exception e) {
    e.printStackTrace();
}

OS Xでは見た目は問題ありませんが、Windows(XPおよび7)ではボタンは次のようになります。

代替テキストhttp://img710.imageshack.us/img710/8735/buttonsoc.png

私は他のプロジェクトでこれとまったく同じコードを使用しましたが、正常に動作します。しかし、この特定のプロジェクトでは、まったく異なる外観になります。

Java1.6を使用しています

前もって感謝します!

4

1 に答える 1

8

実際に L&F を設定する前に、GUI 要素を作成している可能性はありますか? (例) JButton インスタンスを既に作成し、それらのメソッドを呼び出した場合、それらは UI ピアを割り当てます。その後、L&F を変更しても、作成済みのインスタンスには影響しません。

これは、なぜ Mac では動作するのか (L&F は Apple の JVM IIRC では Mac にデフォルト設定されている)、Windows では動作しない理由を説明します。L&F の設定を最初の呼び出しとしてメイン メソッドに直接移動すると、これをすばやくテストできます (これは、メイン クラスに静的に初期化された GUI インスタンスが含まれていないことを前提としています)。

于 2010-06-08T18:45:07.510 に答える