引言

  • 在大连时接触了Java,Java非常优雅,我非常喜欢。期末老师要做一个项目作品,看着windows自带的画图软件,我决定自己动手做一个绘图软件。
  • 经过无数次界面调试,刷新层叠关系令我爆肝了一个月,最终完成了这个2400行代码的绘图软件。Java语言是很优雅和工整的,本项目分层脉络也很清晰,因此不对此项目过多阐述。
  • 绘图软件名为爱绘,本文介绍中将展示爱绘的功能,工程项目中附带我GtiHub爱绘项目地址,欢迎大家交流。

一、介绍

  • 我将从开始界面、绘图界面、设置界面展现爱绘的功能。

1.1 开始界面

  • 开始界面包含软件名爱绘、界面跳转按钮(绘图、文档、设置、关于)、菜单栏(文件、选项、编辑、帮助)。
  • 菜单栏将一直存在于各个界面,绘图界面主要用于用户的创作工作,文档界面包含爱绘的使用说明,设置界面包含爱绘主题、调色板、绘图撤销的设定,关于界面是爱绘的开发信息。

1.2 绘图界面

  • 绘图界面如下所示,当进入绘图界面时用户的鼠标光标将会被替换为画笔,按住鼠标即可在画布上进行绘画。

插入图片与绘图保存

  • 绘图界面如下图所示,右侧是我画的蒙娜丽莎,看起来生动形象、惟妙惟肖,这与爱绘的强大绘画能力密不可分。

  • 在绘图界面右键点击插入图片,插入蒙娜丽莎原画进行对比:

  • 看起来差不多,点击文件-保存,即可将美丽的画作保存为本地图片。

图层替换和可见性

  • 如果你还想进行创作可以添加图层,图层1是默认图层固定可见,其他图层可以设置可见性。点击图层2和图层1的替换按钮将两个图层替换,使得我们的美丽画作移动到图层2上,再设置图层2不可见。

  • 替换图层并设置图层的可见性后效果如下:

绘图功能

  • 右键点击颜色选择器,可以在颜色选择器中选择画笔的颜色

  • 爱绘支持撤销和重做功能,我们可以按ALE+E撤销刚才插入的图片。当绘图时,我们可以在设置界面设置单次撤销数目,以支持一次撤销多次操作。

1.3 设置界面

软件主题

  • 点击主界面设置或菜单栏-选项-设置,跳转到设置界面(您的画作不会因此消失),设置界面如下所设:
  • 点击皮肤选择爱绘的主题颜色为蓝色,换肤后效果如下:

调色板

  • 点击设置界面-调色板可切换调色板为三原色调色板
  • 将鼠标放置于三原色其中之一的区域,通过滚轮即可调整对应原色值,三原色交汇处显示的是最终合成的颜色。

最佳布局

  • 点击设置界面-最佳布局,会弹出调整最佳布局的窗口:
  • 拉伸并移动最佳布局窗口为最佳后关闭最佳布局窗口即可:
  • 点击选项-设为最佳布局,即可将窗口移动到最佳布局位置并且大小为最佳布局大小。

1.4 更多功能

  • 爱绘还有许多功能尚未展示,包括鼠标显示为绘笔、橡皮擦功能、图形插值功能、PS图片、帮助文档等。
  • 如果您想探索更多,请直接访问GitHub上的工程地址。

二、工程项目

2.1 项目层次

  • 爱绘的整体项目图如下所示:
  • gui中包含了UI界面类,instrument中包含了许多功能类比如将屏幕上的内容输出到图片中的功能,resource中包含了许多项目资源图片比如画笔和橡皮擦的图片,software中包含了main函数。本项目实际未使用到mysql数据库。
  • gui中包含如下内:
  • 其中dilogP代表调色板、选择图片文件等弹窗,drawTool代表绘制需要的工具如画笔或橡皮,elementp代表绘图的基本图片和可以插入的图形形状,panelp代表各个界面面板,windowp中包含了主界面类。
  • 阅读源码建议从windowp开始看起,主面板上组装了各种各样的面板组件。可以通过修改dilogP来修改弹窗面板组件,可以修改drawTool来支持更多的绘画操作工具,可以通过修改elementp来支持更多的图形操作,可以通过panelp来调整各个面板的内容。

2.2 项目源代码

  • GitHub上的项目地址如下,可以直接访问GitHub网站下载工程代码。
  • 附上GitHub工程地址,拿走时请给博主点个关注哦!
  • 爱绘项目GitHub网站地址

Java自制绘图软件相关推荐

  1. java 2d绘图 stroke_Java标准教程:Java 2D绘图--第4章使用Text

    Java标准教程:Java 2D绘图--第4章使用Text 本节介绍文本API的用法,以及他们的渲染能力.至今为止,您已经有了基本的Java 2D文本API,同时知道如何设置字体和位置,以及绘制文本. ...

  2. 几何绘图软件哪个好?

    几何绘图软件哪个好? 数形结合是一种极富数学特点的信息转换的教学方法,许多数量关系方面的抽象概念和解析式,若借助于任何一种几何绘图软件都会使一些关系明朗化.简单化.动态几何绘图软件的研究始于二十世纪八 ...

  3. 「首席架构师精选」精选绘图软件

    绘图和绘图程序与图形用户界面,旨在产生公开准备的2D和3D绘图.此外,它还可以用作绘图模块. 图是一种表示数据集的图形技术,通常表示两个或多个变量之间的关系.绘图可以用手工绘制,也可以用机械或电子绘图 ...

  4. 漫画绘图软件MediBang Paint Pro 27.2中文版

    MediBang Paint Pro中文版是一款免费的数字绘画和漫画创作软件,即便是免费的MediBangPaint也可以使用云端功能,免费使用丰富素材,知名字体,多彩笔刷,操作轻便,简洁. 多样笔刷 ...

  5. GeoGebra-一个功能类似于几何画板的开源绘图软件

    GeoGebra-一个功能类似于几何画板的开源绘图软件 绘图功能比几何画板要强大很多:可以绘制几何图形及函数图像,可以做如微分和积分等计算.同时支持图形界面操作和命令操作. GeoGebra可以输出成 ...

  6. 用JAVA编制电子白板软件

    用JAVA编制电子白板软件 用JAVA编制电子白板软件 ----随着 Internet的迅速发展,在Email.WWW.FTP等传统的非实时应用日趋成熟的同时,广大网络用户对在线实时交流的需求不断扩大 ...

  7. java培训分享:学习Java需要什么软件

    在参加java培训过程中学习java技术,需要用到很多辅助工具,这些辅助工具是具有多功能性和实用性的,从代码构建到bug压缩.学习这些工具可以帮助您提高代码的质量,并成为一个更高效的Java开发人员. ...

  8. 论文中的绘图软件大总结 ---自己感想:当你拼命寻找向上的扶梯时,但也要先不让自己恐高

    原文链接: 这些论文绘图软件,你一个都不会用_搜狐科技_搜狐网 https://www.sohu.com/a/217638052_556897 引言 众所周知,高水平的配图可以令论文.报告等显得耳目一 ...

  9. CAD绘图软件中如何查询图纸的版本是多少

    在CAD中,我们不光自己要绘制图纸,还需要查收你的同事发来的CAD图纸文件.那么,在查看图纸的时候怎么知道图纸的版本是多少呢?具体要怎么来进行操作呢?那下面小编就来教教大家在CAD绘图软件中如何查询图 ...

最新文章

  1. TermCriteria模板类
  2. activex for chrome扩展程序 下载”_提升前端开发效率:你应该知道的10个Chrome扩展程序...
  3. 腾讯云安装mysql本地主机名,腾讯云服务器上安装mysql,并用navicat连接
  4. 用c语言实现0到59的数码管,跪求单片机0~99数码管显示用C语言编写的程序
  5. inner join 和 exists 效率_19 个让 MySQL 效率提高 3 倍的 SQL 优化技巧
  6. ES5(二)——替换this 之call()、apply()和bind()
  7. 微信第三方登录测试时报Scope参数错误或没有Scope权限解决方法
  8. 九度 题目1394:五连击数组
  9. 躲避校园网认证客户端的检测,开启笔记本热点的方法!
  10. Cocos 环境搭建 流程~~~~~
  11. Rancher 使用 NFS Storage Classes 进行动态 NFS 存储
  12. 图形学创世纪:当科学照进影视与生活
  13. python依次输入输出字符串_Python练习:输入一个字符串并输出该字符串中所有字符的组合,python...
  14. BAT大佬带你了解“渠道”
  15. Machine Learning Basics
  16. 通过注册表更改Windows网络类型(公共网络、专用网络或家庭网络);
  17. 【信息系统项目管理师】第二十三章 信息系统综合测试与管理(考点汇总篇)
  18. JsonParser、JsonParserFactory、JsonLocation源码翻译
  19. 随机森林算法的Python实现
  20. 天才假象:从刻意练习、心理策略到认知陷阱

热门文章

  1. H5页面与app的交互(jsBridge)和小程序的交互(weixin-js-sdk)
  2. 解决Linux服务器Debian9.9执行source命令不生效问题
  3. app透明/沉浸状态栏的实现方案
  4. 华为nova6刷鸿蒙,华为Nova6 5G将是首款支持鸿蒙2.0升级的机型
  5. 自然语言处理5 -- 词向量
  6. 概率分布 ---- beta分布
  7. 天猫小精灵是阿里唯一AI?即将推出的第二款智能产品才是重头戏!
  8. excel@表格斜线和内容填充@单元格大小调整
  9. android调用相机拍照返回的照片大小太小,变得模糊
  10. LFU缓存算法及Java实现