2012-04-06 9 views
0

私はJavaアプリケーションでルック・アンド・フィール・ニンバスを設定しましたが、なぜビューが常に1つのフレームから他のフレームに異なるのかはわかりません。フレームの中で私は完璧に良い青いニンバを得ました、そして、他のフレームでは、私は灰色のものを持っていましたが、それは適切ではありません。もう1つはニンバスのルックアンドフィールを使用して表示されませんでした。ここで私はメインJava nimbusルック・アンド・フィール・ビューは常に異なっています

try { 
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { 
     if ("Nimbus".equals(info.getName())) { 
      UIManager.setLookAndFeel(info.getClassName()); 
      break; 
     } 
    } 
    } catch (Exception e) { 
    // If Nimbus is not available, you can set the GUI to another look and feel. 
} 

に使用したコードは、私はまた、私はあなたに感謝し、誰かが私を助けることができると思います

import javax.swing.*; 
import javax.swing.UIManager.LookAndFeelInfo; 

をインポートします。

+1

おそらく関連:http://stackoverflow.com/questions/7612592/jframe-and-nimbus-look-and-feel – assylias

+1

はい'java -Dswing.defaultlaf = javax.swing.plaf.nimbus.NimbusLookAndFeel MyApp'(http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbusを参照)でアプリケーションを実行すると正しく動作します。 html) – ulmangt

答えて

5

1つのルック・アンド・フィールから別のルック・アンド・フィールに切り替えるときは、最上位コンテナごとにSwingUtilities#updateComponentTreeUIメソッドを1回呼び出す必要があります。また、表示されているUI /トップレベルコンテナに含まれていないUIコンポーネントを格納する場合は、それらも更新する必要があります。

たとえば、ルック・アンド・フィールを切り替えるときに2つ目のパネルが既に作成されている場合は、それも更新してください。むしろ良いスイングでほとんど何のためのような、あり

tutorial利用可能