如何在Graphics2D中移动路径

时间:2014-04-09 19:26:40

标签: java graphics awt

我正在制作一个带有形状的自定义按钮。该形状例如可以是十字形(关闭窗口)。该类的工作方式如下:您创建一个以Path2D为参数的按钮。此Path2D之前由另一个班级制作。现在,这个形状将通过自定义绘制方法(从JButton覆盖)绘制在按钮的中心。这将是我获取边界矩形左上角坐标的代码:

Rectangle r = path.getBounds();
float x = button.getWidth() / 2 - r.width / 2 + x_offset;
float y = button.getHeight() / 2 - r.height/ 2 + y_offset;

我之前使用过它们,它们完美无缺。现在,因为在屏幕上绘制Shape的方法是Graphics2D.draw(Shape s),并且您无法指定任何坐标,我想知道如何更改边界矩形的x和y坐标

1 个答案:

答案 0 :(得分:2)

您通常无法直接转换Shape。但是你可以创建一个转换后的副本:

Shape shape = ...
AffineTransform at = AffineTransform.getTranslateInstance(dx, dy);
Shape transformedShape = at.createTransformedShape(shape);