Java每秒多次喷涂和捕获屏幕

时间:2015-12-17 17:23:48

标签: java swing screenshot repaint capture

我试图每秒多次重复并捕获JPanel的图像,但是无法有效地执行此操作。到目前为止最终发生的事情是它首先运行平稳,但几秒后它开始滞后。这会导致捕获相同的图像。

到目前为止,我的代码看起来像这样:

BufferedImage contentsImage;
visualizer.setData(approximation);
visualizer.repaint();

Rectangle bounds = new Rectangle(visualizer.master.getRootPane().getSize());
bounds.setLocation(visualizer.master.getRootPane().getLocationOnScreen());
contentsImage = (new Robot()).createScreenCapture(bounds);

所以我在这里要做的是,visualizer是我的JPanel,它从setData()的近似中获得了一堆原始形状。然后通过repaint()绘制这些形状。

从搜索中我知道重绘不一定是瞬间的,我猜这就是它开始“滞后”的原因,因为它将repaint()调用组合在一起。

我该如何尝试这个问题?我已经读过定时器可能会工作,但我不明白如何将计时器,重绘和捕获屏幕很好地结合在一起。我只想在>上绘制正确的原始形状之后捕获图像

我知道会出现性能问题,但我稍后会处理这些问题。我想让这个先工作。谢谢!

0 个答案:

没有答案