gpt4 book ai didi

java - 如何绘制 Java2D 模拟的一部分而不更改为图像/缓冲区,这样我就不必每次都重新绘制它的基元?

转载 作者:行者123 更新时间:2023-12-02 00:54:10 24 4
gpt4 key购买 nike

如何绘制不会更改为图像/缓冲区的 Java2D 模拟的一部分,这样我就不必每次都重新绘制它的基元?

我的 Java2D 模拟的一部分需要我绘制数千条小线。然而,应用程序的这一部分一旦绘制就不会改变,因此每次循环迭代重新绘制数千个图元(进行主动渲染)是没有意义的。

那么,我应该使用什么对象来绘制并保留它,然后允许我简单地将整个图像绘制到我的 Canvas 上,然后在其上绘制发生的变化?

最佳答案

可以抽出 BufferedImage ,然后将 BufferedImage 的内容绘制到 Swing 组件,例如 JPanel .

为了绘制BufferedImage,可以使用 createGraphics获得 Graphics2D图像的上下文:

BufferedImage img = new BufferedImage(width, height, type);
Graphics2D g = img.createGraphics();
// do drawing using the Graphics2D object.
g.dispose();

然后,通过覆盖 paintComponentBufferedImage 的内容绘制到 JPanel方法:

public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img, 0, 0, null); // Draw img onto the JPanel.
}

关于java - 如何绘制 Java2D 模拟的一部分而不更改为图像/缓冲区,这样我就不必每次都重新绘制它的基元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1619751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com