日期:2014-05-20  浏览次数:20878 次

AWTUtilities.setWindowOpacity的窗体打成jar包不能半透明
RT
  jre: 1.6.0_27  
在eclipse 环境下一切ok 打成runnable jar 双击执行 出来的窗体 半透明昙花一现  
我尝试过一些测试方法,1.写个半透明的窗体 把.class 文件拿出来 咱cmd下执行 ok ,打成jar包就挂了
  望高人指点!

------解决方案--------------------
你知道用什么命令运行jar不?
------解决方案--------------------
在控制台用
java -jar your_jar 
命令启动试试看(这种方式需要配置好manifest文件,即Main-Class设置好)

或者
java -cp your_jar your_main_class
命令启动试试看
------解决方案--------------------
这个 AWTUtilities 看起来很美,实际上很可怕

首先,这个类在 com.sun.awt 包中,官方不保证其向后兼容,不保证跨平台性,不保证稳定性,也不建议使用

比如在 1.6 里面,这个半透明效果可以在 setUndecorated(false) 情况下使用(即可以有系统默认边框)
但是似乎只能在Window下使用
在 Linux 下测试报异常,异常提示不支持该效果

而在 1.7 中,这个效果必须在 setUndecorated(true) 下使用(即不可有系统边框)
Linux 下尚未测试
其实在 java 1.7 中该效果已经被 Frame 的 setOpacity 方法代替,理论上应该已经跨平台了