Java 7在Mac OSX上如何创建透明的JFrame/JWindow?

3
我们有一个屏幕共享小程序,它打开一个Swing JFrame,并使用Robot类来捕获空框架后面的屏幕。
用户可以通过框架进行点击,并与其背后的任何内容进行交互。 在Windows上运行良好,并且在Apple的Java版本中也曾工作正常,但在Mac上的Java 7却无法正常工作。鼠标点击无法穿过JFrame。
JFrame使用:
setAlwaysOnTop(true);
setUndecorated(true);

尝试使用:

AWTUtilities.setWindowOpaque(false);

或者

setBackground(new Color(0, 0, 0, 0));

使用苹果公司的版本:

getRootPane().putClientProperty("apple.awt.draggableWindowBackground", Boolean.FALSE);

使用Call函数是解决问题的方法,但现在这种方法已经不起作用了。

请给出建议。

谢谢, Eilon


1
尝试发布一个SSCCE,以便更快地获得更好的帮助... - David Kroukamp
1
有人找到了解决这个问题的方法吗? - user1766744
不确定何时修复,但是使用此代码在Java中对我有效:http://alvinalexander.com/source-code/java/how-create-transparenttranslucent-java-jframe-mac-os-x - kritzikratzi
1个回答

1

这是jdk 7中的一个bug(将在jdk 9中修复)。唯一的解决办法是使用jdk 6。

链接到bug数据库

P.s. 你有找到解决这个问题的方法吗?


@JeroenKetelaar 我在 Mac 上使用了 JDK 6。 - Dmytro Danilenkov
没错,那个方法可行,不过现在大多数人都在使用Java 7,所以在这个问题出现的情况下我无法为其他人编写代码。不过还是谢谢你的更新! - Jeroen Ketelaar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接