我正在尝试以这种方式更改程序的LAF:

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


但这并没有影响,并且在报告“ com.sun.java.swing.plaf.gtk.GTKLookAndFeel”时,程序仍然看起来像METAL,这意味着必须对其进行更改:

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


换成其他LAF也有同样的问题!
有什么问题?

谢谢

最佳答案

在创建GUI之前,您是否设置了外观?因为如果您的GUI已经创建(即使未显示),则必须告诉Swing LAF已更新:

SwingUtilities.updateComponentTreeUI(frame);

10-04 18:13