JLabel透明涂上矩形?

时间:2011-03-08 10:24:36

标签: java transparency paint repaint jwindow

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

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

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

1 个答案:

答案 0 :(得分:1)

首先,您应该覆盖paintComponent而不是paint并致电super.paintComponent(g)。你应该让JWindow不透明,因为最后层的组件将清除旧内容。如果所有图层都是透明的,那么最终会出现屏幕垃圾。

painting with Swing。也许你真的想创建translucent windows