Java:如何复制图形对象并重用它?

标签 java swing graphics paint graphics2d

我认为图形对象的 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/

相关文章:

android - ANDROID 中的 java.lang.NoClassDefFoundError : javax. print.PrintServiceLookup

java - MySQL SQL 查询 DATEDIFF 在 H2 中失败,其中模式为 MYSQL

java - 不明白方法 "delete"在链表中是如何工作的

java - 如何在maven应用程序中使用eclipse swing设计器?

c++ - 创建平滑线以连接 3 个维度的 N 个点

c# - 获取蜂窝图案上的单元格坐标

Java swing 绘制多个可点击的形状

java - JMenuItem.setSelected() 不会改变所选项目的外观?

java - 让 JLayeredPane 的子级填充容器的可用空间

c# - 如何组合多个 GeometryGroup 对象?