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