我希望在JPanel
上绘制一条垂直线,然后让它滑过它,而不会调用paintComponent()
的{{1}}。我曾考虑过使用JPanel
,但我不认为这是正确的方法,因为包含GlassPane
的框架中还有其他组件,因此它并不特定({I}我真的不确定它不会打电话给JPanel
。
有什么想法吗?
答案 0 :(得分:2)
即使使用GlassPane,底层组件也必须在某些时候重新绘制。没有一种避免paintComponent
调用JPanel的好方法。
但是,除了绘画之外,JPanel不应该在paintComponent
中进行操作。如果你试图避免调用它,那么听起来你在paintComponent
方法中有某些东西需要以某种方式改变或缓存。
答案 1 :(得分:1)
如果你只想将线条绘画代码与其他绘画代码隔离开来,也许你应该使用Layered Panes。
如果您的绘画代码很昂贵,那么您可能应该创建一个BufferedImage,然后只需在paintComponent()代码中重绘图像。这比每次重绘都要快。
答案 2 :(得分:0)
您是否有理由不想在JPanel上调用paintComponent()方法?重新绘制对象以使线条滑过它很可能是最简单的解决方案。