Установите Nimbus Look and Feel Java Tutorials - никогда не дойдете до блока catch, чтобы установить другой внешний вид

В Руководстве по Java приводится следующий пример настройки внешнего вида Nimbus: Java Учебники - Nimbus Look and Feel

import javax.swing.UIManager.*;

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

Мне кажется, что проблема возникнет только в том случае, если UIManager.setLookAndFeel() вызовет исключение. Если вы поместите код для установки другого внешнего вида в блок catch, он теоретически никогда не должен выполняться, поскольку вы используете .setLookAndFeel() только на установленных LookAndFeels. Если Nimbus недоступен в системе, он провалится через ForEach и выйдет из блока try-catch, ничего не установив.

Разве код «Если нимб недоступен ...» должен идти после ForEach и до улова? В блоке catch вы можете указать SystemLookAndFeel или DefaultLookAndFeel, поставляемые с JAVA.

Правильно ли я говорю о блоке try-catch, как указано выше? Я обеспокоен тем, что что-то упустил, поскольку этот пример кода цитировался много раз, и я видел, как поднимался этот вопрос.


person Marshall H. Crenshaw    schedule 28.06.2015    source источник


Ответы (1)


Nimbus всегда доступен на уровне класса, так как он включен в каждую JRE после Java 1.5.

Под "Недоступно" подразумевается, что система не может загрузить объект из-за какой-либо проблемы в механизме отражения.

В любом случае я бы сказал, что вы должны установить другой внешний вид в блоке finally. Таким образом, вы можете загружать альтернативы даже в более низких версиях Java.

person Mordechai    schedule 28.06.2015