首页 > 其他分享 >02 画笔

02 画笔

时间:2024-04-13 10:44:04浏览次数:15  
标签:02 java 鼠标 画笔 public import 监听 MyFrame

2.7 画笔

2.8 鼠标监听

目的:实现鼠标画画

TestMouseListener.java

package com.mysoft.lesson03;

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

//鼠标监听事件
public class TestMouseListener {
    public static void main(String[] args) {
        new MyFrame("画图");
    }
}

//自己的类
class MyFrame extends Frame {
    //画画需要画笔,需要监听鼠标当前的位置,需要集合来存储这个点
    ArrayList<Point> points;

    public MyFrame(String title)  {
        super(title);
        setBounds(200,200,400,400);
        setVisible(true);

        //存鼠标点击的点
        points = new ArrayList<>();

        //鼠标监听器,针对这个窗口
        this.addMouseListener(new MyMouseListener());
    }

    @Override
    public void paint(Graphics g) {
        //画画,监听鼠标的事件
        System.out.println("paint(Graphics g) called!");
        Iterator<Point> iterator = points.iterator();
        while (iterator.hasNext()) {
            Point point = (Point) iterator.next();
            g.setColor(Color.blue);
            g.fillOval(point.x,point.y,10,10);
        }

    }

    //适配器模式
    private class MyMouseListener extends MouseAdapter {
        //鼠标 按下,弹起,按住不放
        @Override
        public void mousePressed(MouseEvent e) {
            System.out.println("MyMouseListener =>" + e.getX()+", "+e.getY());
            MyFrame frame = (MyFrame)e.getSource();
            //这个我们点击的时候,就会在界面上产生一个点
            //这个点就是鼠标的点:
            frame.points.add(new Point(e.getX(), e.getY()));

            //每次点击鼠标都重新画一遍!
            frame.repaint();//刷新  30帧 60帧
        }
    }

}

实行效果图:

 

思维导图:

2.9 窗口监听

2.10 键盘监听

标签:02,java,鼠标,画笔,public,import,监听,MyFrame
From: https://www.cnblogs.com/langQ/p/18132475

相关文章

  • 02_Web Api使用Jwt
    JWT(JSONWebToken)是一种用于在网络应用之间传递信息的开放标准(RFC7519)。它使用JSON对象在安全可靠的方式下传递信息,通常用于身份验证和信息交换。在WebAPI中,JWT通常用于对用户进行身份验证和授权。当用户登录成功后,服务器会生成一个Token并返回给客户端,客户端在接下来的请求......
  • SDOI 2024 流水账
    Day0上午李还让去学校,差评。效率也不高,复习了一下SAM发现自己全忘干净了,只能奶一口省选不考串串。8点到校11点半回家吃饭,最自由的一集23333。下午打了个流的板子,然后去试机。slyz全员考号都很靠前,我是006。键盘手感很差,鼠标滚轮也有点问题但是懒得换了。忽然发现dev......
  • SD 2024 一轮省集
    MyBlogsDay1\(80+10+0\)垫底。T1神秘题。人类智慧发现\(S\)不会太长,生成一个\(10^6\)的串,然后建一个类似线段树的结构。预处理出数组\(f_{i,j}\)表示\(T\)的第\(i\)位匹配一个\(S_j\)能跳到最远的地方,可以类似倍增处理。然后双指针在\(S\)上跑,复杂度\(\ma......
  • 【专题】2022年智慧城市白皮书报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32732本白皮书对智慧城市的发展历程进行了归纳和总结,分析了发展实践中的新变化和新内涵,并提出了一系列新的智慧城市建设理念、架构和建议。阅读原文,获取专题报告合集全文,解锁文末29份智慧城市相关行业研究报告。其目的在于为建设新型智慧城市提供......
  • 【专题】2023年新能源汽车及用户调研分析报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=34315原文出处:拓端数据部落公众号2022年,尽管受疫情频发、芯片结构性短缺、动力电池原材料价格高位运行等多方面影响,中国汽车市场却在逆境中整体复苏向好,总体实现正增长,全年销量完成2686万辆;在国内强大的消费市场促进下,乘用车市场已连续8年超过2千......
  • 20240412打卡
    第七周第一天第二天第三天第四天第五天第六天第七天所花时间5h5h1h6h1h代码量(行)469493155497博客量(篇)11111知识点了解完成了python大作业,花费两天完成音频处理工具完成学习记录app地铁系统json数据转对象地铁查询后端完成蓝桥......
  • 博欧会议纪要-2024年4月12日
    排产系统:第一视角:关注订单各项完成情况,把系统分为三部分,预排产(作为判断排产合理性的工具)、正式排产(关注排产时间,查看各种拖期问题)、实时监控(关注资源的变更,比如人员请假、设备损坏等),注重生产组织框架。具体实施:1、完善总览表,加上汇总统计,统计拖期订单数量,再排数量等,用各种......
  • 2023 国庆 清北学堂笔记
    2023国庆QBXT未完结,勿喷Day0被GSS6卡了一整天/kkDay1挂大分膜你赛125pts原因是T1100pts->50pts被卡常力啊啊啊啊其实也不是被卡常了我写的\(\mathcal{O(n^3\logn)}\)然而标算\(\mathcal{O(n^3)}\)但有人\(\mathcal{O(n^4)}\)也过去......
  • 2023 暑假 正睿笔记
    Day1"基础"数据结构并查集每次合并集合,就在两个点之间连上边,询问就是看两个点是否在同一连通块但是朴素的并查集复杂度没有保证所以考虑优化路径压缩改变树的结构不会改变它的连通性我们考虑为什么我们之前复杂度会退化很重要一个原因就是有可能路径太长所以我们把......
  • 【专题】2024休闲食品白皮书报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35814原文出处:拓端数据部落公众号根据艾媒咨询发布的报告,2023年中国零食市场规模已达到惊人的11654亿元,整体市场展现出稳健的增长态势。在这一庞大的万亿级消费市场中,休闲食品的消费习惯以及销售渠道成为我们深入剖析的两大核心要素。阅读原文,获取......