课程设计-毕业设计-JAVA画板课程设计---总之岁月漫长,然而值得等待。

在校大学生的一份辛苦劳动成果写了一个小画板程序。

 

任务书... 1

1.1设计内容... 1

1.2设计任务及具体要求... 1

1.3软件开发运行环境.. 1

2  本组课题... 1

2.1课题... 1

2.2本人任务... 2

3     程序功能简介... 2

1.画板具体功能.. 2

2.功能分析:... 2

4     主体内容... 2

4.1设计分析... 2

4.2程序架构图... 3

4.2.1系统结构分析图... 3

4.2.2程序结构流程图... 4

4.2.3结构流程图... 5

4.3模块功能与说明... 6

4.4源程序... 10

4.4.1Gui类... 10

4.4.2DrawListener类... 13

4.4.3接口图形类... 18

4.5操作方法... 24

4.6实验结果... 25

4.7设计体会... 26

1  设计任务书

1.1设计内容

学习了《Java面向对象编程》的课程,为了更进一步的提高我们对Java的深入学习,进行了课程设计,我所选择课程设计是利用Java的GUI实现画图应用程度。其目的是通过本课程设计使我们能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。

运用JAVA语言,实现界面画板,进行简单图形绘制。

1.2设计任务及具体要求

主要利用java语言设计开发一个小型的画图应用程序,至少具有如下功能:可以进行绘画,有颜色的选择,可以绘制直线、曲线、椭圆、矩形,操作界面要符合用户的一般习惯。

1.3软件开发运行环境

本软件开发平台:JAVA

本软件开发环境:IntelliJ IDEA Community Edition 2018.1.4 x64

本软件运行平台:Windows 10

2  本组课题

2.1课题

JAVA绘图板课程设计。

2.2本人任务

1.编写画板界面。

2.添加组件监听、鼠标监听功能。

3.编写图形类的接口。

4.编写各种图形类并实现图形的重绘。

3   程序功能简介

1.画板具体功能

1)利用Java设计一个画图应用程序;

2)可绘制直线、曲线、椭圆、矩形;

3)可改变线条颜色;

2.功能分析:

用户可以在界面上通过点击各个不同的按钮,选择实现绘制的是哪种图形和颜色,也可以清除画板,程序将自动把所绘制的图形类放在一个集合中,最大化和最小化后遍历该集合,图形实现重绘。

画板画笔分为两种,一种是Graphics,一种是Graphics 2D。可以用来画基本图形还有喷桶、橡皮擦效果。

4  主体内容

4.1设计分析

1.绘图工具已经广为使用,利用JAVA语言编写的画板可以满足基本的图形要求,为了实现绘制矩形、圆形、椭圆、多边形、直线、曲线铅笔等基本图形,在此程序中定义上述几种图形类,实现编写的一个重绘接口。

2.在用户界面GUI类中,继承了JFrame类,添加各种按钮、两个面板,分别用来画图和存放按钮组件,界面采用流式布局,为组件添加编写好的事件监听机制。

3.在事件监听DrawListener类中实现了MouseListener、MouseMotionListener、ActionListener监听接口,并重写其绘图方法。

4.在事件监听类中,定义一个字符串str用来储存按钮按下时上面的内容,如果无文字,则判断为颜色按钮,把画笔颜色color设置为按钮颜色;有文字的话根据按钮文字的不同,去调用不同的图形类方法,并在绘制图形后保存在集合中。

5.在界面GUI类中调用DrawListener类,新建draw引用,为每个按钮添加该事件引用并调用ArrayList集合类,遍历所绘制的图形类,进行重绘。

4.2程序架构图

4.2.1系统结构分析图

                            画图区                            画笔颜色

笔刷

                           工具栏               设置           橡皮檫

                                                             清除面板

                                                              

                          形状选择

矩形      实矩形   椭圆       实椭圆       直线    曲线     多边形

4.2.2程序结构流程图

                        NetJavaShape接口

       图形类            事件监听类                 其它类

                         主界面类

4.2.3结构流程图

开始

                              Gui类

                           点击按钮

                        DrawListener类               NetJavaShape接口

                              判断

                             按钮               颜色类

                         图形类

       画图                        结束

4.3模块功能与说明

1.绘图主界面模块

1主类(GUI)用来生成主界面。

2完成画图的框架。

3主界面由画图区、工具栏组成,布局格式采用BorderLayout布局。

4界面截图

2.绘图类模块

1在程序中用到了JAVA的封装、多态、继承特性,定义了NetJavaShape接口,里面写了redraw()抽象方法。

2分别构造不同的图形类:直线类(reline)、实矩形类(refilljuxing)、曲线类(requxian)、射线类(reshexian)、矩形类(rejuxing)、折线类(rezhexian)、椭圆类(retuoyuan)、实椭圆类(refilltuoyuan)。

3每个图形类都实现NetJavaShape接口中的redraw()方法,每个方法中根据形状选择不同的绘制方法函数。

4每个类可以在事件监听类中新建不同的对象引用,根据按钮选择不同可以调用不同的图形类画法。

5部分代码

import java.awt.*;                //定义一个接口,里面用抽象方法让图形类实现该接口

public interface NetJavaShape{

    public abstract void redraw();

}

  1. 鼠标及组件的事件监听模块

1 DrawListener实现ActionListener、MouseListenerMouseMotionListener接口。

  2定义List<NetJavaShape> getShapeArr()、setG(Graphics g)、setNowColor(JButton nowColor)方法用来获取图形类集合、画笔、当前按钮颜色。

  3在actionPerformed(ActionEvent e)方法中用来判断按钮按下时要执行哪种命令。mouseDragged(MouseEvent e)方法中用来执行射线、曲线、橡皮檫、笔刷操作。mousePressed(MouseEvent e)、mouseReleased(MouseEvent e)方法中记录当前鼠标点击和释放的位置坐标。mouseReleased(MouseEvent e)中执行矩形、椭圆、实椭圆、折线、直线、实矩形、喷桶、多边形、擦除面板操作。

  4 mouseClicked(MouseEvent e)方法中执行多边形连接操作。

  

        }

        else if ("擦除面板".equals(str)){

            reclear=new clear(g);

          reclear.redraw();

          shapeArr.add(reclear);

        }

    }

    @Override

    public void mouseClicked(MouseEvent e) {

        if(str.equals("多边形")&&flag){                            //鼠标点击时绘制连接多边形

            g.setColor(color);

                         x2=e.getX();                              //获取新的点的坐标

                         y2=e.getY();

                        if(e.getClickCount()==2){                  //记录点击次数,点击第二次后开始直线连接

                            g.drawLine(startx1,starty1,startx2,starty2);

                              flag=false;

                            }

                         g.drawLine(startx2,starty2,x2, y2);

                         startx2=x2;   //存下上个点的坐标

                         starty2=y2;

                        }

    }

    @Override

    public void mouseMoved(MouseEvent e) {

    }

}

                }

            }

            

4.5操作方法

本软件由IntelliJ IDEA Community Edition 2018.1.4 x64开发,运行后直接进入界面。

1用户打开软件,点击工具栏界面上不同的按钮,可以画出不同的图形。    2系统默认画笔颜色是黑色,用户也可以点击颜色按钮进行不同颜色的图形绘制。                                                                             3当最大化和最小化时,绘制的图形不会改变,将自动进行图形重绘,也能够用笔刷和橡皮檫工具,实现图形美化。

4.6实验结果

基本实现图形绘制、颜色选择、橡皮檫、笔刷、喷桶功能,具体运行结果如下。

4.7设计体会

当把程序写好并进行调试时,并不是一帆风顺的,在程序编译过程中遇到了许许多多的大大小小的错误,经过一次又一次的改正错误最终完成了程序设计

1画图应用程序的Java源代码全部正确能够通过编译并正常运行。

2画图程序要求功能:画直线、曲线、矩形、椭圆、选择颜色等功能完全实现。

 3通过Java编程完全实现了课程设计任务书的全部功能。学好一门语言,需要不断反复的练习,面向对象的设计模式,充分运用类与对象的关系,JAVA没有多继承,所以在画板软件中定义了一个接口,让不同的绘图类实现该接口,重写不同的方法。图形类中定义了面板、按钮组件,在事件监听类中,根据不同按钮,调用生成不同图形对象。在这里,为了实现重新绘制,需要图形对象放在集合中,然后在主类中遍历。
通过这次课程设计,提高了我对封装、继承、多态、接口、集合的认识,对事件处理也了解,知识体系进一步扩展,掌握的更加牢固紧密。

源码:310508863

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481879.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

忆阻器取代晶体管?时间问题!

来源&#xff1a;悦智网1947年&#xff0c;贝尔实验室发明了晶体管&#xff0c;开创了一个电子设备的时代&#xff0c;电子设备比体积庞大、易碎的真空管电子设备更小、运行更冷、功耗更低。晶体管用作二进制开关&#xff0c;以促进电流从关闭状态变为开启状态。收音机、计算器…

可微硬件:AI将如何重振摩尔定律的良性循环

来源&#xff1a;OneFlow撰文&#xff1a;吕坚平本文阐述了当今AI硬件渊源&#xff0c;跳脱过去芯片设计窠臼&#xff0c;以可微分GPU及可微分ISP为例&#xff0c;提倡以AI为本的可微分硬件理念。希望借此可重振软硬件彼此加持的雄风&#xff0c;缓解甚至逆转摩尔定律的衰退。据…

2nm就靠它了!ASML加速研发新一代光刻机:更贵、更强

来源&#xff1a;万物智能视界用于生产 2nm 芯片的 ASML 新款光刻机预计在 2025 年首次投入使用&#xff0c;对芯片厂商而言&#xff0c;“2nm 工艺战”已经打响。ASML 冲刺 0.55 NA EUV 光刻机对于芯片厂商而言&#xff0c;要想发展先进制程&#xff0c;光刻机是关键设备。而从…

中国机器人产业图谱(2022)

来源&#xff1a;阿里云加速器与行行查研究中心编辑&#xff1a;蒲蒲当前中国机器人产业呈现良好发展势头&#xff0c;产业规模快速增长&#xff0c;“十三五”以来年均复合增长率约为15%&#xff1b;产业格局不断优化&#xff0c;以智能制造、智慧服务为使命与愿景的机器人企业…

全球十大半导体企业,美国独占七席

来源&#xff1a;芯师爷想要了解半导体行业&#xff0c;就永远绕不开一个国家&#xff1a;美国。作为半导体的重要发源地&#xff0c;美国成功确立了芯片市场的“老大”地位。根据IC Insights的芯片市场研究报告&#xff0c;2021年美国企业占据了全球芯市场总销售额的54%&#…

【前沿技术】AI终于攻陷了数学领域!高数考试超过普通博士??

来源&#xff1a;智能研究院高数考不好&#xff0c;不知道是多少人的噩梦。如果说你高数考得还不如AI好&#xff0c;是不是就更难以接受了&#xff1f;没错&#xff0c;来自OpenAI的Codex已经在MIT的7门高数课程题目中正确率达到81.1%&#xff0c;妥妥的MIT本科生水平。课程范围…

中科院院士:几乎没有任何研究课题会完全按照预期发展;如果有,这种研究不会有任何突破、不会给人带来任何惊喜...

来源&#xff1a;科学网作者&#xff1a;Philip Ball&#xff08;《国家科学评论》特约作者&#xff09;2001年&#xff0c;唐本忠团队偶然观察到了这一有悖常理的光物理现象&#xff0c;从而在发光材料研究领域取得了重大原创突破。2016年&#xff0c;Nature将AIE点&#xff0…

工业人工智能系统框架、关键技术、典型应用与发展趋势

来源&#xff1a;原文刊载于《机床与液压》2022年5月 作者&#xff1a;唐露新 张儒锋 姜德志 林建文 周书兴近年来&#xff0c;智能制造是很多工业发达国家积极推进和重点发展的领域&#xff0c;美国、欧洲和日本等都将目光转向人工智能等核心技术&#xff0c;并不断取得新的突…

MIT Technology Review 2022年“全球十大突破性技术”解读

来源&#xff1a;中国科学基金自2001年起&#xff0c;MIT Technology Review每年都会评选出年度“全球十大突破性技术”&#xff0c;不少在当年崭露头角的技术&#xff0c;如今已经深刻地改变了我们的生活&#xff0c;推动了人类社会的进步。2022年2月23日&#xff0c;MIT Tech…

长文综述:大脑中的熵、自由能、对称性和动力学

来源&#xff1a;集智俱乐部作者&#xff1a;Viktor Jirsa, Hiba Sheheitli译者&#xff1a;JawDrin审校&#xff1a;彭菘峻 编辑&#xff1a;邓一雪 导语我们的大脑在一定程度上是贝叶斯推理系统&#xff0c;生成内部模型对外部世界作出预测&#xff0c;然后将预测与感官输入不…

统计学和机器学习到底有什么区别?

来源&#xff1a;不止数据分析统计学和机器学习之间的界定一直很模糊。无论是业界还是学界一直认为机器学习只是统计学披了一层光鲜的外衣。而机器学习支撑的人工智能也被称为“统计学的外延”。例如&#xff0c;诺奖得主托马斯萨金特曾经说过人工智能其实就是统计学&#xff0…

谷歌2022学术指标出炉!Nature继续霸榜,CVPR第4,计算机5顶会入Top20

来源&#xff1a;公众号&#xff1a;【新智元】作者&#xff1a;新智元谷歌最新学术指标出炉&#xff01;今年&#xff0c;AI顶会黑马迭出&#xff0c;CVPR仍保持总榜第4&#xff0c;ICLR和NeurIPS排名继续跃升。值得一提的是&#xff0c;ICCV、ICML直接挤进前20。一年一度的谷…

《自然》揭示:发生意外时,大脑中发生了什么?

来源&#xff1a;学术经纬▎药明康德内容团队编辑 当你需要你关注一些重要的事情时&#xff0c;你的大脑会发生什么&#xff1f;最近&#xff0c;一项发表于《自然》的研究告诉我们一项全新的答案&#xff1a;大脑会释放一股去甲肾上腺素。研究团队发现&#xff0c;去甲肾上腺…

基于嵌入式图像处理平台的实时多目标识别算法

基于嵌入式图像处理平台的实时多目标识别算法 人工智能技术与咨询 昨天 本文来自《科学技术与工程》&#xff0c;作者 王旭辉等 摘 要 提出了一种适用于空间观测任务的实时多目标识别算法&#xff0c;它基于DSP和FPGA组合的图像处理硬件平台&#xff0c;运用散点聚类、轨迹跟…

针对深度学习的“失忆症”,科学家提出基于相似性加权交错学习

来源&#xff1a;AI科技评论作者&#xff1a;Rajat Saxena et al.编译&#xff1a;bluemin编辑&#xff1a;陈彩娴与人类不同&#xff0c;人工神经网络在学习新事物时会迅速遗忘先前学到的信息&#xff0c;必须通过新旧信息的交错来重新训练&#xff1b;但是&#xff0c;交错全…

2021-11-05深度学习

关注微信公众号&#xff1a;人工智能技术与咨询。了解更多咨询 基于YOLOv3 和ASMS 的目标跟踪算法 人工智能技术与咨询 3天前 本文来自《光电工程》&#xff0c;作者吕晨等 1. 引言 目标跟踪一直是计算机视觉的重要应用领域和研究热点。随着硬件设施的完善和人工智能技术…

数字孪生技术在自动驾驶测试领域的应用研究概述

来源&#xff1a;汽车测试网作者&#xff1a;王庆涛 周正等摘 要&#xff1a;研究数字孪生技术在自动驾驶测试领域的应用。旨在构建高度开放的数字孪生自动驾驶测试平台&#xff0c;结合仿真测试工具、通信设备、真实测试车辆等功能单元&#xff0c;形成丰富的测试验证环境&…

2021-11-06深度学习

基于军事知识图谱的作战预案语义匹配方法研究 人工智能技术与咨询 前天 本文来自《指挥与控制学报》 &#xff0c;作者梁汝鹏等 关注微信公众号&#xff1a;人工智能技术与咨询。了解更多咨询&#xff01; 摘 要 提出了一种智能化的预案语义匹配方法,基于军事知识图谱,建立…

2022年“菲尔兹奖”,颁给了这四位年轻人

来源&#xff1a;学术头条7 月 5 日&#xff0c;据 2022 国际数学家大会&#xff08;ICM&#xff09;官方消息&#xff0c;2022 年菲尔兹奖在芬兰赫尔辛基阿尔托大学正式揭晓。菲尔兹奖被认为是年轻数学家的最高荣誉&#xff0c;和阿贝尔奖均被称为数学界的“诺贝尔奖”。清华大…

DeepMind最新研究:AI击败了人类,设计了更好的经济机制

来源&#xff1a; 学术头条“人类面临的许多问题并不仅仅是技术问题&#xff0c;还需要我们为了更大的利益在社会和经济中进行协调。”“要想人工智能技术能够提供帮助&#xff0c;它需要直接学习人类的价值观。” ——DeepMind 研究科学家 Raphael Koster人工智能&#xff08;…