前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >制作一个简单的绘图软件(让人头大的JAVA期末作业)

制作一个简单的绘图软件(让人头大的JAVA期末作业)

作者头像
喜欢ctrl的cxk
发布2019-11-08 16:21:01
2.2K0
发布2019-11-08 16:21:01
举报
文章被收录于专栏:Don的成长史Don的成长史

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42449444/article/details/84859910

写在前面:

超级无敌巨想吐槽我们学校的课程设置,这TM也太不合理吧。上学期我C和Python一起学(最后Python98 C语言只有79 C实验93),这学期C++和JAVA一起学。。。。图形用户界面、多线程飞起讲,只用了12周(每周2大节理论1大节实验)就把300多页内容讲完了,然后给我们布置这个制作一个绘图软件的期末大作业,好了 说多了都是泪,预习开始。

制作一个简单的绘图软件

实验要求:

1、软件包括菜单“Start”,“Start”菜单下有“New”、“DrawLine”“Exit”菜单项。New实现清空画布;DrawLine菜单右拉出菜单DrawLineA(从鼠标左键按下到鼠标左键放开划线),DrawLineB(从鼠标左键按下开始,随鼠标拖动划直线),DrawLineC(鼠标左键按下,随鼠标移动化任意曲线);Exit实现退出程序。

2、添加工具栏,工具栏上添加JComboBox组件,用于选择线条的宽度。在工具栏上添加三个JRadioButton按钮,分别表示画圆、画矩形、划直线(点下鼠标左键后,拖动鼠标线条随之移动,释放左键后划出直线),一个JButton按钮用于打开颜色选择对话框,选择线条的颜色;添加一个JButton按钮,标题为“Eraser”,用于擦除图像。

预习开始:

我遇到的第一个难题就是:菜单栏的菜单Start的子菜单DrawLine下还有子菜单DrawLineA,DrawLineB,DrawLineC,如何通过代码来实现。于是我预习的第一个知识点是:菜单栏/菜单/子菜单组件JMenuBar/JMenu/JMenuItem (来源作者:Thinkd00r)。

这部分内容的预习已经完成了,看下预习的成果。

接着我发现DrawLine菜单下应该是三个单选按钮,而不是像我的上图那样,于是我遇到了第二个难题,怎么设置复选框和单选按钮组,并且每次只允许选择一个按钮呢?单选按钮又如何添加监听事件呢?预习第二个知识点出现了:单选按钮:JRadioButton(来源作者:蓝蓝223)。

这部分内容的预习已经完成了,看下预习的成果。

预习的第三部分内容:实现三种鼠标画线方式DrawLineA、B、C的画线操作。这部分 我是参考教材电子工业出版社的《JAVA程序设计实用教程第4版》上面的177页例6.8来实现的,看下效果。

点击Exit按钮退出程序,这个比较好实现 不用预习,到这里老师给定的实验要求1就全实现了。Exit功能如下图。

预习的第四部分内容是如何创建工具栏并添加工具栏组件?预习的第四个知识点: JToolBar(工具栏)(来源作者:xietansheng)。工具栏是可以拖动的,看下效果。

预习的第五部分内容是如何创建一个下拉列表框?预习的第五个知识点:JComboBox(下拉列表框)(来源作者:xietansheng)。 下拉列表框建立好了之后,先用sysout来看下监听事件是否也添加成功,看下效果。

预习的第六部分内容是如何根据下拉列表框的选项,来改变画布中的画线的宽度? 预习的第六个知识点:如何设置java drawLine画的线的粗细(来源作者: MingChaoSun)。我是用了一个char型来记录下拉列表框的选项是'粗'、'中'还是'细',然后再在内部类DrawLineCanvas画线时实现的,看下效果。

预习的第七部分是如何在点击Circle、Matrix、Line、Eraser(才发现我上面写的是eraser,首字母忘记大写了)这些工具栏按钮后,出现相应的画图功能? 预习的第七个知识点是在教材上。看下画椭圆、画矩阵、画直线和橡皮擦的效果:

预习的第八部分是如何添加颜色选择器来改变画笔的颜色?预习的第八个知识点来自:JColorChooser(颜色选择器)(来源作者:xietansheng)。看下预习效果:

哈哈哈哈,360行 完结!代码会在期末结束的时候更新在该博客和GitHub上

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面:
  • 制作一个简单的绘图软件
    • 实验要求:
      • 预习开始:
        • 哈哈哈哈,360行 完结!代码会在期末结束的时候更新在该博客和GitHub上
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档