透明的 AWT 组件,可能吗?

发布于 2025-01-05 06:39:04 字数 313 浏览 1 评论 0原文

我需要将半透明的 AWT 组件/容器放置在其他组件之上以接收鼠标事件。

这里的问题是创建一个半透明组件。到目前为止,我的调查表明 Swing 可以在 JPanel 等设备上执行 setOpaque(false) 操作。 AWT 有类似的东西吗?

这个想法是通过简单地单击某处并移动鼠标来使 ScrollPane 可滚动。这就是为什么我需要一个透明组件将其放置在所有其他组件之上。

长话短说,我需要一个半透明组件(无论是哪一个)放置在其他元素之上以接收鼠标事件。

提前致谢

I'm in the need of a translucent AWT component/container to be placed on top of other components to receive the mouse events.

The problem here is to create a translucent component. My investigation so far showed that Swing has the possiblity to do setOpaque(false) on e.g. a JPanel. Is there something similiar for AWT?

The idea is to make a ScrollPane scrollable by simply clicking somewhere and moving the mouse around. Thats why I need a transparent component to place it above all other components.

Long story short, I need a translucent component, no matter which one, to place on top of other elements to receive the mouse events.

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

晨光如昨 2025-01-12 06:39:04

AFAIK 对于史前的 AWT 容器和组件 来说不可能正确,您可以尝试将此代码从 Swing 更改为AWT,半透明 仅支持 Swing JComponents

AFAIK not possible correctly for prehistoric AWT Container and Components you can to try that with changing this code from Swing to the AWT, Translucency is supported for Swing JComponents only

眼睛会笑 2025-01-12 06:39:04

JNA 项目 提供了一些使 AWT 组件半透明的实用程序。有一个该功能的 WebStart 演示。窗口透明度实用程序位于 platform.jar 中,它增强了基础 jna.jar。

但是,如果您只想捕获鼠标事件,则应该查看已内置到 JFrame 中的不同层。该组件已经通过 JLayeredPane 有了层的概念,您可以相当轻松地使用 JPanel 作为位于所有其他组件之上的玻璃窗格来过滤事件。

The JNA project provides some utilities for making AWT components translucent. There's a WebStart demo of the functionality. The window transparency utilities are in platform.jar, which augments the base jna.jar.

However, if all you want to do is trap mouse events, you should look into the different layers that are already built into a JFrame. The component already has a concept of layers via JLayeredPane, and you can fairly easily use a JPanel as a glass pane which sits above all other components to filter events.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文