Я пытаюсь настроить внешний вид (LAF) апплета Java, который используется через веб-браузер. Я хочу установить системный LAF по умолчанию, но при загрузке в браузере апплет возвращается к Metal LAF. Когда я запускаю его как отдельный апплет, LAF применяется правильно. Единственный элемент, который я показываю пользователю - это JFileChooser. Я пробовал несколько способов преодолеть это, в том числе:
1) Переопределить метод start () апплета:
@Override
public void start() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI(this);
System.out.println("LOOK AND FEEL SET!");
}
catch (Exception ex) {
System.out.println(ex);
}
}
2) Установите его в статическом инициализаторе класса апплета:
static {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
System.out.println("LOOK AND FEEL SET!");
}
catch (Exception ex) {
System.out.println(ex);
}
}
3) Установите его в конструкторе апплета:
public MyApplet() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI(this);
System.out.println("LOOK AND FEEL SET!");
}
catch (Exception ex) {
System.out.println(ex);
}
}
Я использую Java 6, но ориентируюсь на Java 5 в Windows. В любом случае LOOK AND FEEL SET! выводится на консоль, так что я знаю, что она установила ее без исключения. Это происходит независимо от браузера (с использованием Firefox 3.6 и IE7). Почему он это делает и как я могу заставить его уважать LAF, который я назначаю?