我通常使用这条线
javax.swing.UIManager.setLookAndFeel( javax.swing.UIManager.getSystemLookAndFeelClassName());
因为如果您在另一个系统中运行该应用程序,您可能没有 Windows 的外观和感觉。
或者你可以使用这个:
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("<lookAndFeelName>".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
因为这样的话,如果你想强制windows Look and feel你应该验证这个lookAndFeel是否存在
或者你有两种很好的方法来设置lookAndFeel而不检查是否存在:
try {
javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
//javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");
} catch (ClassNotFoundException ex) {
//Handle Exception
} catch (InstantiationException ex) {
//Handle Exception
} catch (IllegalAccessException ex) {
//Handle Exception
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
//Handle Exception
}
或者简单地说:
try {
javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
//javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");
} catch (Exception ex) {
//Handle Exception
}
WindowsLookAndFeel 和 WindowsClassicLookAndFeel 之间的区别在于,“WindowsLookAndFeel”将对应于用户 Windows 主题,而“WindowsClassicLookAndFeel”将强制 Java 应用程序 GUI 匹配 Windows 经典主题,即使用户尚未将其 Windows 主题设置为经典。
因此,您可以强制使用经典,但不能使用 Windows 经典主题强制 Vista/7 LookAndFeel。
或者你可以将你的应用程序设计成 Vista/7 LookAndFeel 之类的东西(开个玩笑)