gpt4 book ai didi

java - 单击透明框架 (Java)

转载 作者:太空宇宙 更新时间:2023-11-04 08:03:03 25 4
gpt4 key购买 nike

我正在尝试用Java(Swing)开发一个应用程序,它可以让我在屏幕上覆盖一个网格,并且能够单击网格后面的内容——例如桌面上的图标。

我可以使用透明 JFrame 或透明 JWindow 来解决这个问题吗?

无论我使用什么,透明窗口/框架都需要

  • 永远处于领先地位。
  • 占据整个屏幕。
  • 用鼠标监听器记录每次点击。
  • 记录屏幕上的点击坐标。
  • 允许我使用 Graphics 类在屏幕上绘制网格,以及其他元素,例如数字或图像,也应该单击。

任何方向将不胜感激。

如果我不够具体,请道歉,但我还没有找到可以完成所有这些事情的演示窗口或框架。有一个例子hereanother here -- 但我不知道如何在 Eclipse 中使用 WindowUtils。这是我第一次进行 GUI 开发,除了基本 Java 类之外,我从未使用过外部库。

最佳答案

  • 在顶部:Fr​​ame.setAlwaysOnTop() 应该适合您
  • 全屏:将窗口大小设置为显示大小,使其占据整个屏幕
  • 事件和覆盖绘制:实际行为可能因平台而异,但通常如果您使用 alpha 组件绘制到窗口中,并且您的窗口名义上是透明的,则那些未绘制的区域(或有时绘制低于特定 alpha 阈值的区域)会将事件传递到下方的任何应用程序、窗口或组件。
    如果您捕获事件,则必须将它们重新引入到您所在窗口下方的任何窗口,这并非易事。如果您不捕获事件,则需要安装特定于操作系统的事件处理程序来捕获感兴趣的事件。

JNA 的 WindowUtils.setWindowTransparent() 应提供所需的绘制/事件行为,或者您可以使用最新 JVM 版本中提供的 AWTUtils 等效项。

关于java - 单击透明框架 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12524132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com