7.简单的模拟画画

1.简单的模拟画板

import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Iterator;

public class Dome2 {
   public static void main(String[] args) {
       //启动
       new MyFrame().LoadFrame();
  }
}

//画板类
class MyFrame extends Frame {
   ArrayList points;

   //加载画板
   public void LoadFrame() {
       setBounds(0, 0, 500, 500);
       setVisible(true);
       //初始化 存鼠标的点 的集合
       points = new ArrayList<>();

       addMouseListener(new MyMouserListener());//监听鼠标按压事件
  }

   //画笔
   @Override
   public void paint(Graphics g) {
       Iterator iterator = points.iterator(); //迭代器遍历坐标
       while (iterator.hasNext()) {//不为空
           Point point = (Point) iterator.next();//指向下一个坐标
           g.setColor(Color.red);//设置画笔颜色
           g.fillOval(point.x-10, point.y-10, 20, 20);//画一个实心圆
      }
  }

   //添加 鼠标点击的点的坐标 到集合里面
   public void AddPoint(Point point) {
       points.add(point);
  }

   //鼠标监听类~监听鼠标按压事件
   private class MyMouserListener extends MouseAdapter {
       @Override
       public void mousePressed(MouseEvent e) {
           MyFrame myFrame = (MyFrame) e.getSource();//获取鼠标按压的资源~返回的是一个对象
           //调用 添加鼠标点击的点的坐标到集合里面 的事件
           myFrame.AddPoint(new Point(e.getX(), e.getY()));// new Point() ~ 获得鼠标的坐标存到point
           myFrame.repaint();//重画

      }
  }
}

 

思路总结:

创建画板(初始化鼠标点过的坐标的集合)监听鼠标点击事件 --------> 鼠标点击事件里面可以获取到我们鼠标点击坐标 --------> 调用我们自己写的方法,把鼠标点过的坐标都添加到集合里面 --------> 通过集合迭代器遍历出坐标,遍历出一个坐标在画板上面画一个点

 

注意:当点击一次鼠标后要用画笔重画一次,因为当鼠标点了一次,集合里面就多了一个坐标,重画,会把所有的坐标在遍历画点

 

posted @ 2022-04-01 15:46  阳光下的承诺  阅读(62)  评论(0)    收藏  举报