我使用BufferedImage的getScaledInstance()方法和JLayeredPane的repaint()方法来实时调整大小并在屏幕上绘制图像。但我看过一篇文章说repaint()方法不合适,因为它不会立即刷新layeredPane。然而,没有其他方法可以描述。
我还构建了一个远程应用程序,每当检测到平移手势时它都会发送一条消息。当java程序收到消息时,它会调用我写的方法。
这是我正在使用的代码。我可以使用什么而不是repaint()方法?
public void resizeImage(float percentage) {
if (percentage > 0) {
int newWidth = (int)(originalImage.getWidth() * (percentage / 100));
int newHeight = (int)(originalImage.getHeight() * (percentage / 100));
Image tmp = originalImage.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH);
BufferedImage dimg = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = dimg.createGraphics();
g2d.drawImage(tmp, 0, 0, null);
g2d.dispose();
imageForDisplay = dimg;
layeredPane.repaint();
}
}
提前致谢!