Изменение Java-программы LookAndFeel не влияет - PullRequest
0 голосов
/ 22 августа 2011

Я пытаюсь изменить LAF моей программы следующим образом:

try {
    UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
} catch (Exception ex) {
    Logger.getLogger(MainWin.class.getName()).log(Level.SEVERE, null, ex);
}

Но это не влияет, и программа по-прежнему выглядит как METAL, в то время как она сообщает «com.sun.java.swing.plaf.gtk.GTKLookAndFeel», что означает, что ее необходимо изменить:

UIManager.getLookAndFeel().getClass().getName();

Переход на другие LAF имеет ту же проблему! В чем проблема?

Спасибо

Ответы [ 2 ]

3 голосов
/ 22 августа 2011

Вы настраиваете внешний вид, прежде чем создавать свой графический интерфейс?Потому что, если ваш GUI уже создан (даже если не показан), вы должны сообщить Swing, что LAF был обновлен:

SwingUtilities.updateComponentTreeUI(frame);
0 голосов
/ 22 августа 2011

GTKLookAndFeel применяется, только если операционная система Linux.

Использование GTKLookAndFeel для приложения, работающего в Windows, не меняет внешний вид.
Он по-прежнему будет отображать металлический вид и ощущение.

Примечание. GTK + L & F будет работать только в системах UNIX или Linux с GTK + 2.2 или более поздней версии, а Windows L & F работает только на Windows системы. Как и Java (Metal) L & F, Motif L & F будет работать на любом платформы.

Подробнее о Изменение внешнего вида

...