Как да настроите външния вид и усещането на Nimbus като основни

Тъкмо уча Java и все още не мога да реша този малък проблем, който имам.

Моят изскачащ календар използва изгледа и усещането на Nimbus, но имам панели и контейнерни Jtables, които използват изгледа и усещането на Java - опитвам се да накарам всеки GUI екран/прозорец да използва изгледа и усещането на Nimbus. Беше предложено от Merky да поставя следния код в моя main, за да направя всеки следващ екран да изглежда и да се усеща като Nimbus, но не мога да го накарам да работи, така че къде и как да поставя този код?

public static void main(String args[]) {
    SA md = new OptraderSA("Copyright© 2010 Simon Andi");

    Dimension sd = Toolkit.getDefaultToolkit().getScreenSize();

    md.setLocation(sd.width/2-400/2, sd.height/2-400/2);
    md.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    /*Suggested Code*/
    try {
        for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                UIManager.setLookAndFeel(info.getClassName());
                System.out.println("CHOSEN THIS");
                break;
            } else {
                UIManager.setLookAndFeel  ("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            }
        }
    } catch (Exception e) {
        // If Nimbus is not available, you can set to another look and feel.
        // I can't get it to compile or work.
    }

}

person Simon Andi    schedule 06.01.2011    source източник


Отговори (3)


Ето какво правя в основния си метод, за да активирам вида и усещането на Nimbus:

public static void main(String[] args) {
    try {
        for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (Exception e) {
        // If Nimbus is not available, fall back to cross-platform
        try {
            UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
        } catch (Exception ex) {
            // Not worth my time
        }
    }
    new Controller();
}

Трябва да сте сигурни, че сте конфигурирали UIManager с изгледа и усещането на Nimbus, преди да стартирате нишката за изпращане на събитието swing (преди да извикате view.setVisible(true)).

person BenjaminLinus    schedule 06.01.2011
comment
@ BenjaminLinus....благодаря! Както споменахте, трябва да се конфигурира, преди да стартирам EDT. - person user547453; 19.04.2013

Мисля да пробвам с:

for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
    if ("Nimbus".equals(info.getName())) {
        UIManager.setLookAndFeel(info.getClassName());
        System.out.println("CHOSEN THIS");
        break;
    }
}
person Rahul    schedule 23.03.2011
comment
Сега всъщност мога да видя вашия код (моля, използвайте форматиране на кода в бъдеще), изглежда, че не прави нищо повече от това, което user347500 демонстрира, по-добре, преди повече от 2 месеца. :( - person Andrew Thompson; 23.03.2011

За да настроите вида и усещането на Nimbus, добавете този код във вашия основен метод:

try {
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
        if ("Nimbus".equals(info.getName())) {
            UIManager.setLookAndFeel(info.getClassName());
            break;
        }
    }
} catch (Exception e) {
    e.printStackTrace();
}
person Kamran    schedule 03.04.2018