2012-04-06 3 views
0

Я установил внешний вид nimbus в своем приложении java, но я не знаю, почему представление всегда отличается от одного кадра к другому. в кадре я получил совершенно хороший синий нимб, а в другой рамке я получил серое, но это не правильно. а другой не отображался, как использование nimbus внешнего вида. вот код, который я использую в главном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

Когда вы переключаетесь с одного взгляда на другой, вы должны обязательно вызвать метод SwingUtilities#updateComponentTreeUI один раз для каждого контейнера верхнего уровня. Кроме того, если вы храните компоненты пользовательского интерфейса, которые не являются частью какого-либо видимого контейнера интерфейса/верхнего уровня, вам также придется обновить их.

Например, если ваша вторая панель была создана при переключении внешнего вида, обязательно обновите ее.

Существует, как почти все, в свинге, довольно хороший tutorial доступны