gpt4 book ai didi

java - 如何在 JPanel 上绘制与代码相关的矩形作为对象(可以像 Photoshop 一样选择、删除等)

转载 作者:行者123 更新时间:2023-12-02 12:01:00 24 4
gpt4 key购买 nike

有没有一种方法可以像在 Photoshop 中一样将形状绘制为离散实体,每个绘制的矩形都是一个可以删除、移动、删除的对象,特别是当删除对象时,我在代码中删除了该对象,并将其从 JPanel 中删除或我在其上绘制的 Canvas ,而不是使用 Canvas 背景绘制相同的对象,我认为这是低效的方式。

例如,当我们使用 Grahpics2D 绘制矩形时,我们使用如下命令。

     @Override
public void paintComponent(Graphics canvas){

super.paintComponent(canvas);

((Graphics2D) canvas).drawRect(20,20,100,100);
}

现在这个绘制的矩形与左上角的顶点位置以及宽度和高度相关联。它与 Rectangle 对象没有关联,因此在绘制后无法引用矩形。

最佳答案

Now this drawn rectangle is associated with the upper-left vertex position and width and height. It's not associated with Rectangle object so there is no way to refer to the rectangle after it's drawn.

创建 Shape 对象的 ArrayListe。 Shape 对象可以是矩形、椭圆形、多边形等。然后在您的paintComponent(...) 方法中,您迭代ArrayList 来绘制每个Shape。

因此 ArrayList 包含对 Rectangle 的引用。

查看 Custom Painting Approaches 中的 Draw on Component 示例

如果您想真正变得更奇特,请查看 Playing With Shapes 。您可以使您的形状成为一个真实的组件。

关于java - 如何在 JPanel 上绘制与代码相关的矩形作为对象(可以像 Photoshop 一样选择、删除等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47252209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com