java图形编辑系统(源代码+详细教程)

前言

首先声明本系统的环境信息:

Eclipse4.9、JDK8

对的,没错,本系统没用到数据库,完全靠java代码实现。

效果展示


功能说明

上图已经很全了!但是这里有个逻辑比较的不符合常规逻辑。

添加文字功能逻辑:

首先点击添加“A”,将当前选择更改为文字,然后在下方选择文字大小和输入文字内容,最后在左边画布上点击鼠标左键,噔噔噔!就成功添加文字了!如下图所示:


详细说明

首先我这个界面的布局是这样的,分为菜单栏、绘图板、辅助栏、信息栏,如下图所示:


代码介绍:

PS:嫌我讲的墨迹的小伙伴,直接点我跳转到源代码处!

首先打开本系统,看到是三个package,这里讲解一下:

其中各个package的功能如下表所示:

Package名称功能说明
app说实话,没啥用,里面的文件下面会讲到。
model里面存放的是本系统所需要的类。
view正如view的意思一样,这里放到是主界面。

其中各个class的功能如下表所示:

Class名称功能说明
MainApp.java提供了整个程序的入口,里面只做了一个功能,实例化了MainFrame.java,可以从此处运行本系统,也可以从MainFrame.java运行本系统。
MainFrame.java主界面的实现类,主要使用javaswing的各种控件来实现主界面的布局。
MyMouseListener.java整个系统的监听类,在主界面中为每个控件单独写监听方法太麻烦了!因此将本系统所有的监听功能集合到一个class中。
PaintPanel.java本系统的主角,中间绘图板,继承自JPanel,主要实现了图片的加载,新建,保存等功能。
Shape.java本系统的核心,该class保存了当前绘制的形状,以便后续使用。

原理介绍:

1、选择:

功能分析:鼠标按下->拖动选择区域

实现:记录鼠标按下时的坐标x1,y1,拖动时记录鼠标的实时位置x2,y2,

最后用画图graphics类,绘画矩形即可,注意边框为虚线。

2、铅笔:

功能分析:鼠标拖动

实现:记录鼠标的坐标x1,y1,在坐标处绘制半径为1的小圆点,宏观上连起来就是直线。

3、橡皮擦:

功能分析:鼠标拖动

实现:记录鼠标的坐标x1,y1,在坐标处绘制半径为10的小白点,宏观上就是将图像抹除了。

4、刷子:

功能分析:鼠标拖动

实现:记录鼠标的坐标x1,y1,在坐标处绘制半径为5的小圆点,宏观上就是类似笔刷的效果。

5、直线:

功能分析:鼠标按下->拖动形成直线

实现:记录鼠标按下的坐标的x1,y1,拖动时的鼠标坐标x2,y2,

在起点终点间绘制直线即可。

6、圆形:

功能分析:鼠标按下->拖动

实现:记录鼠标按下的坐标的x1,y1,拖动时的鼠标坐标x2,y2,

在起点终点间绘制圆形即可。

7、矩形:

功能分析:鼠标按下->拖动

实现:记录鼠标按下的坐标的x1,y1,拖动时的鼠标坐标x2,y2,

在起点终点间绘制矩形即可。

8:文字:

功能分析:鼠标点击

实现:记录鼠标按下的坐标的x1,y1,在x1,y1处drawString即可。


已知BUG
  1. 已绘制图形清除后,将界面最小化,重新打开界面后,清除的图形又会出现。
  2. 在绘制直线,圆形,矩形时,拖动生成图形,会将已存在的图形清除。

实现

源代码免费分享给大家!

但是因为代码行数过长,因此将百度网盘链接放在我的个人公众号 熊子q 中,

回复【图形编辑系统】即可获得!

结语

我是熊子q,一个进击中的程序员。

你知道的越多,你不知道的越多

欢迎点赞收藏转发一键三连!

注:如果本篇博客有任何错误和建议,欢迎人才们留言!

  • 11
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值