java - 带有 Java 7 的 Mac OSX 上的透明 JFrame/JWindow

标签 java macos swing jframe transparent

我们有一个屏幕共享小程序,它打开一个 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));

Apple 版本:

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

调用成功了,但这不再有效了。

请指教。

谢谢, 艾隆

最佳答案

这是 jdk 7 中的错误(将在 jdk 9 中修复)。只有使用 jdk 6 的方法。

link to bug database

附言你找到这个问题的解决方案了吗?

关于java - 带有 Java 7 的 Mac OSX 上的透明 JFrame/JWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020607/

相关文章:

macos - 将音频输出到内置输出设备(不是默认设备)

python - 更新指向包含空格的保管箱目录的 PYTHONPATH 变量

java - 如果 JPanel 大于其父级,则调整其大小

Java 2D回合制游戏编程: handle 2 mouse clicks per player

java - 从特定索引替换字符串中子字符串的上一个和下一个索引

objective-c - 检测 macOS 鼠标光标下的颜色

Java自定义输入输出流

Java JLayeredPane 内容在刷新时闪烁

c# - Java 中的 DataTable 等效项

java - 有什么理由用同步集合初始化实体属性吗?