Java 在滚动窗格中滚动时,图形将从画布上擦除
我有一个Java 在滚动窗格中滚动时,图形将从画布上擦除,java,graphics,canvas,scrollpane,Java,Graphics,Canvas,Scrollpane,我有一个JFrame,它包含4个滚动窗格实例,每个实例都有自己的画布和缓冲策略。当我第一次绘图时,一切正常,但当我在滚动窗格中滚动时,当我将其滚动回视图时,从视图中滚出的图形将被擦除。不要使用画布和滚动窗格。使用JPanel和JScrollPane。Swing在默认情况下是双缓冲的 另外,您发布的代码与您的自定义绘画无关,因此我们无法猜测您可能做错了什么 在进行更改后,如果需要更多帮助,请发布您的SSCCE。Hi reach@camickr。。。我真的很感谢你的帮助(现在和过去),但你似乎总是向
JFrame
,它包含4个滚动窗格
实例,每个实例都有自己的画布
和缓冲策略
。当我第一次绘图时,一切正常,但当我在滚动窗格
中滚动时,当我将其滚动回视图时,从视图中滚出的图形将被擦除。不要使用画布和滚动窗格。使用JPanel和JScrollPane。Swing在默认情况下是双缓冲的
另外,您发布的代码与您的自定义绘画无关,因此我们无法猜测您可能做错了什么
在进行更改后,如果需要更多帮助,请发布您的SSCCE。Hi reach@camickr。。。我真的很感谢你的帮助(现在和过去),但你似乎总是向我要SSCCE。我目前有5个不同的课程,我需要几个小时才能把它缩小到足够小的程度,让你可以轻松地运行和导航。我将发布当前用于在画布上绘制的方法。我从来没有使用过Swing,我不知道我是否能在早上必须提交此项目之前理解我需要知道的区别:(@typoknig,这不是SSCE。你需要学习创建一个SSCE以简化问题。在Swing中绘制与AWT相同,只是你重写了paintComponent()方法而不是paint()方法,您不必担心双缓冲。因此更简单。请参阅有关绘制的Swing教程()。您不应该使用Thread.sleep。您应该使用Swing计时器。本教程还有一节介绍如何使用计时器。是时候阅读了。JFrame是一个Swing组件,所以您正在使用Swing。是的,我意识到我发布的所有内容都不是SSCCE。我是说制作SSCCE所需的时间比将所有内容转换为Swing所需的时间更长。我也意识到SSCCE的好处,但当您时间紧迫时,这不是一个选项。再次感谢您的帮助,我将尝试在我的下一个项目中更好地实施您的建议。