我想要显示一个必须快速更新的图像(在JPanel中)(大约30 fps)。我还希望尽可能降低CPU使用率。
每次图像更新都包含:
首先想到的解决方案是这样的:
private BufferedImage screen;
public void runBlockUpdate(int x, int y, int pieceWidth, int pieceHeight byte[] piece){
ImageIcon imgPiece = new ImageIcon(piece);
Graphics2D g = screen.createGraphics();
g.drawImage(imgPiece.getImage(), x, y, pieceWidth, pieceHeight, null);
repaint();
}
@Override
public void paintComponent(Graphics g) {
g.drawImage(screen, 0, 0, (int) (screenRect.width * screenScale), (int) (screenRect.height * screenScale), this);
}
我的主要性能问题涉及paint()方法。在完全实现这项技术之前,我想知道是否有更有效的方法。