我试图每秒多次重复并捕获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()调用组合在一起。
我该如何尝试这个问题?我已经读过定时器可能会工作,但我不明白如何将计时器,重绘和捕获屏幕很好地结合在一起。我只想在>>上绘制正确的原始形状之后捕获图像。
我知道会出现性能问题,但我稍后会处理这些问题。我想让这个先工作。谢谢!