我正在制作一个带有形状的自定义按钮。该形状例如可以是十字形(关闭窗口)。该类的工作方式如下:您创建一个以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坐标
答案 0 :(得分:2)
您通常无法直接转换Shape
。但是你可以创建一个转换后的副本:
Shape shape = ...
AffineTransform at = AffineTransform.getTranslateInstance(dx, dy);
Shape transformedShape = at.createTransformedShape(shape);