首先我们来看一下实现后的效果图

我本来画的是一个冰某dun,由于代码的实现方式还不是很高级,而且我的绘画水平有有限,画出来的样子不是很美观,后来又因为版权问题,发不出来图片,只能删掉了。

下面来看一下代码的实现过程

package com.Ltz2.paint;import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.Iterator;public class PaintTest02 {public static void main(String[] args) {new MyFrameTwo("画笔绘画功能实现");}
}class MyFrameTwo extends Frame{//定义集合存储鼠标点击出来的点点ArrayList points;public MyFrameTwo(String title){//设置面板窗口的名字super.setTitle(title);//设置窗体位置setBounds(210,210,600,450);points = new ArrayList<>();this.addMouseListener(new MyMouse());//设置可见性setVisible(true);//添加窗体关闭功能addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}//重写实现画笔的方法@Overridepublic void paint(Graphics g) {//super.paint(g);//监听鼠标事件Iterator iterator = points.iterator();while (iterator.hasNext()){Point point = (Point) iterator.next(); //获取集合中的下一个元素,强制成Point类型g.setColor(Color.CYAN);//设置画笔元素的颜色g.fillOval(point.x,point.y,10,10);//设置画笔元素的坐标}}public void addPaint(Point point){points.add(point);}//实现鼠标事件的监听类private class MyMouse extends MouseAdapter{//重写适配器模式的MouseAdapter类的 鼠标按压事件方法@Overridepublic void mousePressed(MouseEvent e) {//super.mousePressed(e);MyFrameTwo f2 = (MyFrameTwo) e.getSource();f2.addPaint(new Point(e.getX(),e.getY()));//实时刷新f2.repaint();}}}

这是整个代码的实现,其实很简单。
首先需要创建容器,然后是画板和画笔的绑定,然后画笔需要鼠标的事件监听,在之后就是集合将监听鼠标事件产生的点击出来的元素进行存储。画笔从集合当中将元素读取出来。(画笔每次只画一个点点,所以还需要让鼠标没点击一次刷新重画一次即 f2.repaint()

GUI编程,仿Windows系统mspaint画板的伪实现相关推荐

  1. java连接as400数据库,原创:用JDBC访问AS/400数据 配置与JDBC编程要点Windows系统 -电脑资料...

    发了半天了,只见鱼过,不见冒泡,正在疑惑各位大大是否对此题目不感兴趣呢?luoshengzh大大的鼓励来了,谢谢luoshengzh, 发了半天了,只见鱼过,不见冒泡,正在疑惑各位大大是否对此题目不感 ...

  2. 如何正确地进入基于x86-64Bit Windows系统的商业软件破解领域

    [作者] 猪头三 个人网站:http://www.x86asm.com/ [序言] 从事Windows系统下的软件研发,已走过差不多9年的时光,在这段时间里认识不少朋友.在每认识一个新的朋友的时候,我 ...

  3. C#——《C#语言程序设计》实验报告——Windows桌面编程——简单的计算器(仿Windows 10计算器)

    一.实验目的 熟悉使用WPF进行界面编程的基本过程: 掌握WPF布局.控件.事件的使用. 二.实验内容 运用WPF技术,模仿Windows 10系统中计算机器(Calculator)程序,开发一个类似 ...

  4. 基于.net之仿Windows画板设计

    基于.net之仿Windows画板设计 队 长:周 洋 小组成员:周寅莹 袁晓旭 江春鹏 蒋彬含 朱振宇 屈生辉 万里骏 彭子航 指导老师:余敦辉 所在班级:湖北大学计算机科学与技术2016级 摘要: ...

  5. Windows系统编程之进程间通信

    Windows系统编程之进程间通信 标 题: Windows系统编程之进程间通信 作 者: 北极星2003 时 间: 2006-05-25,14:18:36 链 接: http://bbs.pediy ...

  6. 新手学习【菜鸟教程】Python CGI编程的几个坑(Windows系统)

    写在前面的话 作为新手,在window10系统中学习Python CGI编程,按照教程却发现无法运行,终于解决各种坑,记录在次供小白参考,也欢迎大神指正. 下面我分安装.配置和调试两部分来讲. 安装 ...

  7. Windows系统编译GSL2.7用于C语言编程(2022.5.8)

    Windows系统编译GSL2.7用于C语言编程(2022.5.8) 1. GSL(GNU Scientific Library) 1.1 GSL简介 1.2 前人在Windows平台下已编译好的GS ...

  8. Windows系统编程之异步I/O和完成端口 [北极星2003 看雪论坛]

    一.  同步I/O和异步I/O 在介绍这部分内容之前先来认识下"异步I/O".   说起异步IO,很容易联想到同步I/O,对于同一个I/O对象句柄在同一时刻只允许一个I/O操作,其 ...

  9. C++ GUI Programming with Qt4 Second Edition 之 附录A.2 Windows系统Qt的安装

    A.2 Windows系统Qt的安装 在本书编写时,Windows平台的Qt安装包是qt-win-opensource-4.3.2-mingw.exe(http://download.qt.io/ar ...

最新文章

  1. React-项目-引入外部的样式(14)
  2. b2c开发模式的数据库设计
  3. 《解释性机器学习》笔记(五):Rule Fit 规则拟合
  4. 匹配printf()说明符的类型
  5. 二、Linxu的目录结构
  6. 面试官系统精讲Java源码及大厂真题 - 47 工作实战:Socket 结合线程池的使用
  7. 几个国内外远程工作平台
  8. jquery常用事件——幕布
  9. caffe源码解析by薛云峰
  10. OneDrive 挂载为本地磁盘Ubuntu
  11. 蜀门207服务端GM命令大全
  12. 移动建站工具(一):分秒钟将Web网站移动化
  13. SpringBoot 与 Kotlin 完美交融
  14. 理论结合实际:如何调试神经网络并检查梯度
  15. ios13 微信提示音插件_iOS13免越狱修改微信提示音方法!亲测有用!
  16. solidworks创新作业无限魔方
  17. Excel高级功能 数据工具
  18. Mac 不能将项目xxx移到废纸篓,因为它已打开
  19. Qt大屏电子看板系统源码基础版
  20. 中国筒仓罐市场现状研究分析与发展前景预测报告(2022)

热门文章

  1. Java线下面试笔试总结
  2. vue cli3兼容win7 32位的ie8浏览器打不开提示页面,处理方式,跳转提示的页面是后端路由指向
  3. Flink_来自两条流的订单交易匹配(Connect, CoProcessFunction)
  4. 三态输出门实验报告注意事项_广东KGPS电源使用注意事项
  5. Docker系列 WordPress系列 你需要个人博客吗
  6. pd数据流图怎么画_数据流图(DFD)画法
  7. react +antd-mobile图片上传插件(ImageUploader,支持七牛云直传)
  8. 什么是尖端放电?什么叫电击?什么叫暂态电击?什么叫稳态电击?
  9. web站点的ssl安全性检测
  10. win vm 安装苹果虚拟机 显示logo