画布上的Java滚动文本

画布上的Java滚动文本,java,animation,canvas,awt,hardware-acceleration,Java,Animation,Canvas,Awt,Hardware Acceleration,我正在制作一个应用程序,其中我需要在a上滚动一些文本-目前我正在不断调用repaint()方法,并覆盖Canvas中的paint()方法,以便在每次调用该方法时调整位置,然后在给定位置绘制字符串 这是可行的,但它真的会为这么简单的事情吃掉CPU一些愚蠢的东西。有没有更好的硬件加速方式来完成这项任务?我尝试过使用VolatileImage,但由于某种原因,性能明显下降 我需要使用Canvas而不是JPanel-我在同一个项目中使用VLCJ,它需要一个重量级组件来播放视频。您可以在这种情况下使用 附

我正在制作一个应用程序,其中我需要在a上滚动一些文本-目前我正在不断调用
repaint()
方法,并覆盖
Canvas
中的
paint()
方法,以便在每次调用该方法时调整位置,然后在给定位置绘制字符串

这是可行的,但它真的会为这么简单的事情吃掉CPU一些愚蠢的东西。有没有更好的硬件加速方式来完成这项任务?我尝试过使用
VolatileImage
,但由于某种原因,性能明显下降

我需要使用
Canvas
而不是
JPanel
-我在同一个项目中使用VLCJ,它需要一个重量级组件来播放视频。

您可以在这种情况下使用


附录:您可以将全文预渲染为深度兼容的
BuffreredImage
drawImage()
做得更好,它不需要缩放或改变深度。

谢谢你的回答-我已经在使用双缓冲(每当使用图形/动画时,我都是标准的)。预渲染似乎可以显著降低CPU使用量,谢谢你。CPU使用率仍然徘徊在30%左右。没有什么特别的描述似乎有帮助,这幅画本身似乎很分散,没有特别的人跳出来。这可能看起来像一个愚蠢的问题,但多久是“持续”?您是否使用计时器每隔这么多毫秒调用一次重新绘制?@lhballoti一点也不,我每隔40毫秒左右调用一次重新绘制。如果你是这个意思的话,我并不是说它的速度尽可能快:)