我尝试使用UIManager.setLookAndFeel
函数来更改我的java应用程序的外观,但它对我的JFrame
/按钮的视觉外观没有任何影响。我使用Netbeans 7.4
,我的应用是Java Swing Desktop Application
。
/**
* Main method launching the application.
*/
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
} catch (Exception e) {
System.out.println(e.getMessage());
}
System.out.println("init");
launch(JavaMysqlTestApp.class, args);
}
我用过
com.sun.java.swing.plaf.motif.MotifLookAndFeel
javax.swing.plaf.metal.MetalLookAndFeel
com.sun.java.swing.plaf.gtk.GTKLookAndFeel
UIManager.getSystemLookAndFeelClassName()
UIManager.getCrossPlatformLookAndFeelClassName()
但是他们没有改变我的任何外表。如何使此功能生效?
答案 0 :(得分:1)
有人可能会检查所有的外观:
try {
LookAndFeel laf = UIManager.getLookAndFeel();
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
...
if (laf.getName().equals(info.getName())) {
...;
}
}
} catch (ClassNotFoundException | InstantiationException
| IllegalAccessException | UnsupportedLookAndFeelException ex) {
Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex);
}
外观可能第二次设置。对于初学者发现这个问题:L& F仅适用于 swing ;如果使用 awt 按钮(而不是JButton)或JavaFX,您将看不到任何变化。
你可以这样做:
UIManager.addPropertyChangeListener(...);
如果发生任何变化,请事后做出改变。