清除透明窗口上的 JFrame 背景

发布于 2024-10-10 00:39:07 字数 165 浏览 4 评论 0原文

我有一个透明的 JFrame AWTUtilities.setWindowOpaque(this, false); 我在调整窗口大小时遇到​​问题。我需要一些可以在绘制之前清除窗口背景的东西,我需要使其所有背景为空且透明。现在这幅画是在旧背景上画的,看起来很难看。 我尝试在背景上绘制透明图像,但我遇到了同样的问题。

i have a transparent JFrame AWTUtilities.setWindowOpaque(this, false);
I have a problem when resizing the window. I need something that could clear the background of the window before drawing on it,I need to make it all the background empty and transparent. Now the painting is draw over the old background and looks ugly.
I tried to draw a transparent image over the background but i have same issues.

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

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

发布评论

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

评论(1

救赎№ 2024-10-17 00:39:07

如果您有一个不透明的组件,您将完全负责绘制其内容。窗口系统或 AWT 不执行任何操作来将背景设置为某种定义的状态。

所以至少你应该做一些类似基本 Canvas 代码的事情,

        g.clearRect(0, 0, width, height);

“透明”到底是什么意思。您想浏览桌面吗?您想看到组件后面的面板吗(那么至少它不应该是“不透明的”)。

If you have an opaque component you're completely responsible for drawing its content. The windowing system or AWT does NOTHING to set the background to some defined state.

So at least you should do something like the basic Canvas code

        g.clearRect(0, 0, width, height);

What exactly do you mean with "transparent". Do you want to look through to the desktop? Do you want to see panel behind your component (then at least it should not be "opaque").

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