我认为图形对象的 create() 函数创建了当前图形对象的新副本
这是我的代码
Graphics temp;
temp = g.create();
temp.drawString("hello world",100,100);
g.fillRect(200,200,50,50);
现在我的理解是,由于 temp 现在是 g 的副本,所以对 temp 的任何更改都不会反射(reflect)在 g 上。因此,由于 fillRect 函数,我的输出应该只是一个矩形。但是我在我的绘画输出中得到了字符串和矩形。为什么会发生这种情况以及如何阻止它?
最佳答案
我是 Java 的初学者,但是,在查看您的代码后,我发现您已将 g.创建(); (我不太确定但是)这可能意味着一切都用 g 声明。会受到影响。我建议这样做:
Graphics2D g2d = (Graphics2D) g;
Graphics temp;
temp = g2d.create();
temp.drawString("hello world",100,100);
g.fillRect(200,200,50,50);
希望它有用
关于Java:如何复制图形对象并重用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17359983/