我希望能在一个JPanel上画一条竖线,并且使它平滑地滑动,而不会触发该JPanel的paintComponent()方法。我考虑使用GlassPane,但我认为这不是正确的方式,因为有其他包含该JPanel的框架组件,所以它并不特定于该组件(我也不确定它是否会调用paintComponent())。你有什么想法吗?
即使使用玻璃面板,底层组件也必须在某个时刻重新绘制。没有非常好的方法来避免调用JPanel的paintComponent方法。然而,JPanel在paintComponent方法中不应该做除绘图之外的事情。如果你试图避免调用它,那么听起来你的paintComponent方法中有些东西需要改变或以某种方式进行缓存。
也许你应该使用分层面板,如果你只想将线条绘制代码与其余绘制代码隔离开来。如果你的绘制代码很耗费资源,那么也许你应该创建一个 BufferedImage,然后在你的 paintComponent() 代码中重新绘制图像。这比每次都从头开始重绘要快。
paintComponent
方法中确实有太多的内容了。在进行任何缓存之前,我想知道是否有任何可行的技术可以使用... - krookedking