在Java中重置Graphics2D对象

时间:2011-07-13 15:41:04

标签: java swing graphics2d

我在Java中尝试使用Graphics2D。但像往常一样,我被困住了。 :P问题是: 假设我有这段代码,

Graphics2D g=(Graphics2D)(this.getGraphics()); //Inside a JFrame
g.rotate(Math.PI/8);
g.drawLine(10, 20, 65, 80);

//I want this one and all following lines to be drawn without any rotation
g.drawLine(120, 220, 625, 180);

有可能???我知道必须有某种方式,但我无法弄清楚。请帮忙。

2 个答案:

答案 0 :(得分:14)

您要做的是恢复转换。

尝试

AffineTransform oldXForm = g.getTransform();
g.rotate(...);
g.drawLine(...);

g.setTransform(oldXForm); // Restore transform
g.drawLine(...);

答案 1 :(得分:4)

调用getTransform()(给你一份副本),旋转,绘图,然后使用setTransform()恢复状态。 docs for setTransform()甚至有一个例子。