Java nimbus Внешний вид всегда разный

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

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;

Я надеюсь, что кто-нибудь может мне помочь, спасибо.


person charcoalite    schedule 06.04.2012    source источник
comment
Возможно, связано: stackoverflow.com/questions/7612592 /   -  person assylias    schedule 07.04.2012
comment
Работает ли оно правильно, если вы запускаете приложение с java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel MyApp (см.: документы. oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html)   -  person ulmangt    schedule 07.04.2012


Ответы (1)


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

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

Как и почти для всего в Swing, существует неплохой учебник доступно

person Robin    schedule 06.04.2012