setClip()的替代方法
问题描述:
我一直试图使用SetClip()在组件边界之外绘制组件,但事实证明这是非常麻烦的,而且大部分互联网似乎都认为它不值得去做。setClip()的替代方法
所以,我正在转向你可爱的人寻求帮助。有没有办法在组件的边界之外绘制?我需要将界限留在原来的位置,因为他们也注册了mouseEntered和mouseExited事件。
答
为了安全起见,setClip()
“设置了用户剪辑,它独立于与设备边界和窗口可见性关联的剪辑。”如果您的组件位于可见的Container
中,则可以通过覆盖容器的paint()
(或Swing中的paintComponent()
)来绘制组件。 getComponents()
方法将为您提供一个包含组件的数组,您可以从中获取容器坐标中的位置。
您是针对AWT还是Swing? – trashgod 2011-03-18 10:28:04
@trashgod:呃......我想我正在使用一种混合物......?现在看来,这似乎不是一个好主意...... – Tharwen 2011-03-21 12:52:08
[Mixing Heavy and light components]中有一些指导原则(http://java.sun.com/products/jfc/tsc/articles /混合/)。 – trashgod 2011-03-21 12:55:14