提问者:小点点

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


是否有一种方法可以将形状绘制为离散实体,例如在photoshop中绘制的每个矩形都是可以删除,移动,删除的对象,特别是当对象删除时,我删除代码中的对象,它从JPanel或画布中删除,而不是使用画布背景绘制相同的对象,我认为这是一种低效的方式。

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

     @Override
     public void  paintComponent(Graphics canvas){

       super.paintComponent(canvas);

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

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


共1个答案

匿名用户

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

创建一个ArrayListe of Shape对象。Shape对象可以是Rectanda、Ellipse、Polygon等。然后在您的“画组件”(…)方法中,您遍历ArrayList以绘制每个形状。

所以ArrayList包含对Rectgle的引用。

查看自定义绘画方法中的Draw on Component示例

如果你想变得非常花哨,那就去看看玩形状。你可以把你的形状变成一个真正的组件。