gpt4 book ai didi

java - JLabel 覆盖透明绘制的矩形?

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

我将 JWindow 的背景设置为完全透明。然后我在它的paint-Method 中绘制了一个圆角矩形(RGB:0,0,0,100),并向JWindows ContentPane 添加了一个JLabel。但是,当我尝试重新绘制 JWindow 以更新 JLabel 时,它不会删除旧的 Rectangle 和 JLabel 的旧值。因此,结果是我的自定义工具提示框(它应该是什么)变得不太透明,并且您无法读取 JLabels 内容,因为它覆盖了旧内容。

有什么办法可以解决这个问题吗?

顺便说一句,如果我不重新绘制,它的透明度不会降低,但是 JLabel 的新内容会覆盖旧内容,就像我重新绘制时一样。

最佳答案

首先,您应该重写 paintComponent 而不是 paint 并调用 super.paintComponent(g)。您应该让 JWindow 保持不透明,因为最后一层的组件会清除旧内容。如果所有图层都是透明的,您最终会出现屏幕垃圾。

参见painting with Swing 。也许您真的想创建translucent windows

关于java - JLabel 覆盖透明绘制的矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5231168/

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