Различные результаты при настройке Nimbus LAF

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

try {
        NimbusLookAndFeel laf = new NimbusLookAndFeel();
        UIManager.setLookAndFeel(laf);
        laf.getDefaults().put("defaultFont", courier);
} catch (UnsupportedLookAndFeelException ex) {
        Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
}

Это все прекрасно и денди, за исключением того, что он не перезаписывает весь шрифт. Только шрифт на границах заголовка. Пример: Скриншот программы с кодом UIManager в программе

Теперь, если я установлю внешний вид с помощью параметров виртуальной машины в Netbeans, я получу следующий результат: Скриншот программы с кодом UIManager в программе И параметрами виртуальной машины

Если это поможет, вот параметры виртуальной машины, которые я использую:

-Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel

Меня больше всего беспокоит то, что при компиляции в «толстую банку» и запуске на другом компьютере параметры виртуальной машины, похоже, не сохраняются, и я остаюсь с паршиво выглядящим первым снимком экрана. Так может ли кто-нибудь сказать мне, почему это происходит? Может быть, предложите какой-то обходной путь или исправить. Спасибо!

РЕДАКТИРОВАТЬ: Симпатичная тема (скриншот 2), похоже, вообще не работает вне netbeans.


person zfollette    schedule 25.07.2015    source источник
comment
Возможный дубликат: объекты Swing GUI должны создаваться и обрабатываться только в потоке отправки событий, после вы вызвали UIManager.setLookAndFeel().   -  person trashgod    schedule 25.07.2015
comment
Спасибо за комментарий. Попробую, хотя возможный дубликат сомневаюсь.   -  person zfollette    schedule 25.07.2015
comment
Устранил ли предложенный подход проблему?   -  person trashgod    schedule 26.07.2015
comment
Нет. По какой-то причине единственное, что сработало, это установить L&F в нимб с помощью флага -D, а затем снова программно установить его в нимб.   -  person zfollette    schedule 26.07.2015
comment
Это символ той же основной проблемы.   -  person trashgod    schedule 26.07.2015