Java GUI之画笔

今天学习了GUI的画笔功能以及对鼠标的监听功能和实现方法:

package TWQ1;

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

public class Twq6 {
    public static void main(String[] args) {
        new Mypaint("画笔");//启动窗体
    }
}
class Mypaint extends Frame {
    ArrayList points;//用来存储鼠标当前点击的位置
    public Mypaint(String title){
        super(title);//给窗体添加一个标题
        points=new ArrayList<>();
        addMouseListener(new MymouseLisener());//添加鼠标监听器
        addWindowListener(new WindowAdapter() {//添加窗体监听器,点击窗体右上角的×号之后可以关闭窗体
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        setBounds(300,300,500,500);//设置窗体的位置和大小
        setVisible(true);//显示窗体
    }
    public void addPaint(Point point){
        points.add(point);//把当前鼠标点击的点存放起来
    }
    @Override
    public void paint(Graphics g) {
        Iterator iterator=points.iterator();//定义迭代器将当前鼠标点击过的点显示在画板上
        while(iterator.hasNext()){//只要动态数组里还有可用的点就把它画到画板上
            Point point= (Point) iterator.next();//当前点画完之后,指针指到下一个点
            g.setColor(Color.BLUE);//设置画在面板上的当前点的颜色
            g.fillOval(point.x,point.y,10,10);//设置画在面板上的当前点的形状以及大小
        }
    }
    class MymouseLisener extends MouseAdapter{
        @Override
        public void mousePressed(MouseEvent e) {
            Mypaint mypaint= (Mypaint) e.getSource();
           mypaint.addPaint(new Point(e.getX(),e.getY()));//将画笔放到窗体上
           mypaint.repaint();//使得鼠标每点一次画一次
        }
    }
}

在窗体上鼠标点击一次就会出现一个蓝色的点,最后实现的效果如下图:
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值