【问题标题】:How to move a Path in Graphics2D如何在 Graphics2D 中移动路径
【发布时间】:2014-04-09 19:26:39
【问题描述】:

我正在制作一个带有形状的自定义按钮。例如,该形状可以是十字形(如关闭窗口)。该类的工作方式如下:您创建一个带有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坐标。

【问题讨论】:

    标签: java graphics awt


    【解决方案1】:

    您通常不能直接转换Shape。但您可以创建一个转换后的副本:

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

    【讨论】:

    • 您也可以转换Graphics 上下文,只要确保在完成后恢复它;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 2017-09-29
    • 2017-02-21
    • 2021-12-01
    • 2021-10-23
    • 1970-01-01
    相关资源
    最近更新 更多