2011-11-01 33 views
4

我正在制作一个组件(扩展JComponent),它将在顶部绘制一些装饰,并部分超出其边界。在组件的边界外绘图

我想知道是否有一种使用自包含代码在组件外绘图的方法(例如,我不想在父容器中绘制任何图形)。

+1

尝试Graaphics的setClip方法。在我的尝试中,它工作得很好。 – StanislavL

回答

2

AFAIK,没有简单的解决方案。达到此目的的一种方法是使用容器的GlassPane,如here所示。恕我直言,我只是修改组件的Graphics对象来改变“明显”的界限,这将使您能够绘制组件本身“超出界限”的东西。

+1

你的意思是用setClip?我认为这只能用来缩小绘图区域。 – Tharwen

+2

好吧,我错了。我只是把这个标记为答案的原因是我刚刚解决了一个问题,我一直坚持了几个小时,这个问题有一个非常简单的解决方案:**如果您不重绘父容器作为组件,将不会显示渲染。**显然,但不容易发现,因为我正在重绘鼠标和组件事件,其中一些重绘容器,其中一些不重绘。 – Tharwen

+0

@Tharwen,那么你应该回答你自己的问题,并将其标记为正确的。 :D – mre