Export to GitHub

beautyeye - issue #25

[java官方bug导致的问题]在win7平台下的java1.6.0_33及其它版本上调用窗口透明api后窗内所有文本被强制反走样


Posted on Sep 19, 2012 by Happy Monkey

【问题描述】: 在jdk1.6.0_u33下+win7平台下(其它版本是否也有这情况尚未完全验证),JFrame窗口 被设置成透明后,该窗口内所有文本都会被反走样(不管你有没有要求反走样),从而导 致文本看起来发虚。

【原因分析】: 这应该是官方AWTUtilities.setWindowOpaque(..) bug导致的,java1.7.0_u6及其它较新版本同样存在该问题,使用BeautyEye时,遇到这样的问题只能让窗口使用不透明边框类型才行(这样 BERootPaneUI类的设置窗口透明的代码就不用执行,也就不用触发该bug了),但JDialog 不受此bug影响,诡异!

Comment #1

Posted on Sep 19, 2012 by Happy Monkey

(No comment was entered for this change.)

Attachments

Comment #2

Posted on Sep 19, 2012 by Happy Monkey

【目前的解决方法】:2012-09-19 1)换用java老一点的版本,比如update14以上; 2)使用不需要透明窗口的边框类型,FrameBorderStyle.generalNoTranslucencyShadow或FrameBorderStyle.osLookAndFeelDecorated,如何自定义窗口边框类型具体请参见:https://code.google.com/p/beautyeye/wiki/Introduction

Comment #3

Posted on Sep 20, 2012 by Happy Monkey

(No comment was entered for this change.)

Status: Accepted

Labels:
Type-Defect Priority-Medium Milestone-官方bug,暂时无解 影响所有版本