这些天用swt开发的小程序的默认样式是win2000风格,困扰了我许久。在一次切换jdk的时候,偶然发现用1.5编译出的程序风格继承XP,而1.6编译的程序UI风格是win2000,还是找不到根本原因。在Windows XP系统下, SWT开发的按钮就是像 Windows 2000 下面那样的方块按钮, 不能使用 XP 的系统外观主题, 如何显示XP外观呢,请看下文。
今天真想终于大白于天下呵呵,先记录一下解决方案:
1.下载(http://www.eclipse.org/swt/javaw.exe.manifest ) 或者 新建文件javaw.exe.manifest
文件内容如下
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="IBM.Eclipse.javaw" type="win32"/> <description>Eclipse IDE</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*"/> </dependentAssembly> </dependency> </assembly>
name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
这段代码就是设置组件风格样式的。
2.将javaw.exe.manifest文件复制到 支持程序运行的%JAVA_HOME%/bin 目录下,搞定(*^__^*)
(javaw.exe.manifest文件应该放到javaw.exe的统计目录)
javaw.exe 所在的目录下, 具体可能位置为:
c:\windows\system32\ (如果你安装的时候选择了 JRE, 这里将有一个 java.exe 和 javaw.exe);
c:\Program Files\Java\JRE1.xxx\bin\ (同上);
c:\jdk1.4.2\jre\bin\ (只安装了 JDK).
同样的技术, 只要重命名 javaw.exe.manifest 到其它文件名, 例如 myexe.exe.manifest, 就能使一些原来不能显示 XP 外观的老式程序显示新的 XP 外观了
参考资料:
http://www.bigresource.com/VB-XP-style-on-windows-2000-EbCdZ9mRMY.html
http://msdn.microsoft.com/en-us/library/ms997646.aspx#xptheming_topic2
本文介绍了一种解决SWT程序在Windows XP环境下显示Win2000样式的方法。通过在%JAVA_HOME%/bin目录下放置一个配置文件javaw.exe.manifest,并设置特定的XML内容,可以使SWT程序正确采用XP系统的外观主题。

1450

被折叠的 条评论
为什么被折叠?



