我正在使用java swing构建应用程序,我使用以下代码为UI提供本机操作系统外观
try {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
在OS X上,外观很好,但在Windows(XP和7)上,按钮看起来像这样。
alt text http://img710.imageshack.us/img710/8735/buttonsoc.png
我在其他项目中使用了这个完全相同的代码,它运行正常。但在这个特定的项目中,我的表情完全不同。
我正在使用Java 1.6
提前致谢!
答案 0 :(得分:8)
您是否可能在实际设置L& F之前创建GUI元素?如果您已经创建了(例如)JButton实例并在其上调用了方法,那么他们会分配他们的UI对等 - 之后对L& F的更改不会影响已经创建的实例。
这可以解释为什么它适用于Mac(L& F默认使用Apple的JVM IIRC上的Mac),但不适用于Windows。如果您将L& F直接设置为主方法作为第一次调用(这假设您的主类当然不包含任何静态初始化的GUI实例),则可以快速测试。