2012-04-06 6 views
0

Ich habe das Aussehen und Gefühl Nimbus in meiner Java-Anwendung, aber ich weiß nicht, warum die Ansicht immer von einem Frame zum anderen unterscheidet. in einem Rahmen bekam ich einen perfekten blauen Nimbus, und in einem anderen Rahmen bekam ich den grauen, aber das ist nicht richtig. und der andere wurde nicht als Nimbus-Look and Feel angezeigt. hier ist der Code, den ich in HauptJava Nimbus Look and Feel Ansicht ist immer anders

verwenden
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. 
} 

ich importieren auch

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

Ich hoffe, jemand kann mir helfen, danke.

+1

Möglicherweise ähnliche: http://stackoverflow.com/questions/7612592/jframe-and-nimbus-look-and-feel – assylias

+1

Does Es funktioniert korrekt, wenn Sie die App mit 'java -Dswing.defaultlaf = javax.swing.plaf.nimbus.NimusLookAndFeel MyApp' ausführen (siehe: http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus. html) – ulmangt

Antwort

5

Wenn Sie von einem Look-and-Feel zu einem anderen wechseln, müssen Sie sicherstellen, dass die Methode SwingUtilities#updateComponentTreeUI einmal für jeden Container der obersten Ebene aufgerufen wird. Wenn Sie UI-Komponenten speichern, die nicht zu einem sichtbaren UI/Top-Level-Container gehören, müssen Sie diese ebenfalls aktualisieren.

Wenn beispielsweise Ihr zweites Bedienfeld bereits erstellt wurde, wenn Sie das Aussehen ändern, müssen Sie es ebenfalls aktualisieren.

Es ist, wie für fast alles in Swing, ein ziemlich gutes tutorial verfügbar

Verwandte Themen