在组件边界外绘制

Tha*_*wen 5 java swing drawing clip bounds

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

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

mre*_*mre 2

AFAIK,没有简单的解决方案。实现此目的的一种方法是利用容器的GlassPane,如此处所示。恕我直言,我只是修改Graphics组件的对象来更改“明显”边界,这将使您能够绘制组件本身“边界之外”的内容。

  • 好吧,我错了。我只是将其标记为答案的原因是我刚刚解决了一个我已经坚持了几个小时的问题,它有一个非常简单的解决方案:**如果您也不重新绘制父容器作为组件,它不会显示任何渲染。** 很明显,但不容易发现,因为我在鼠标和组件事件中重绘,其中一些重绘容器,而另一些则不重绘。 (2认同)