我正在尝试设置通过 Web 浏览器使用的 Java 小程序的外观 (LAF)。我希望设置系统默认 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,但在 Windows 上针对 Java 5。在任何情况下,外观和感觉设置!被打印到控制台,所以我知道它设置它没有抛出异常。这与浏览器无关(使用 Firefox 3.6 和 IE7)。 为什么要这样做,我怎样才能让它尊重我指定的 LAF?