发表时间:2022-03-25来源:网络
Hello,大家好,这是我的第二篇博客,写的是如何创作一个画图板;因为我以前写的代码都是用dev-C++写的控制台程序,这次学习了JFrame等容器,就想写个画图工具练练手,这一篇我讲的可能会细碎一点。
首先我们要做一个可视化界面,用JFrame类即可,JFrame是一个窗体类,就是我们平时见到的窗体框架,当我们实例化一个JFrame对象时,相当于就是创造了一个窗体,具体的窗体实现我就不在这里详述了,可以看其他博客或者私我。
要做一个画图板,首先要做一个窗体,代码如下:
至此,我们即已经做好了一个简单的窗体程序,接下来我们要在窗体上添加各种功能,比如画画功能,比如重绘功能(后面会详细介绍),比如改变画笔颜色,比如画各种图形,比如清除画板等等。
实现画画功能:
我们要实现画画第一点要想到的是,假设我们要画一条直线,一般是按紧鼠标拖动一段距离,松开鼠标的时候直线便会从起点处画到终点处,我们是不是需要一个鼠标的监听事件呢,对了,就是要监听鼠标的动作,那就需要将JFrame调用addMouselistener,然鹅addMouseListener方法需要一个MouseListener对象作参数,问题又来了,这个MouseListener是一个接口,无法直接实例化对象(详情可参照上一篇博客),这个我们可以新建一个监听的类,在Buttonlistener类中我们实现MouseListener接口,这样子就可以实现对鼠标的监听了(当然要记得重写接口中的方法喔)
第二点要想到的是,如何获取一个画笔来画出图形。在Java中,有一个画笔类,我们只需要实例化画笔对象即可,而画笔对象不是new出来的,我们需要用一个JFrame或者JPanel对象来获取。
形如:JFrame jf = new JFrame();//创建窗体对象
Graphics gf = jf.getGraphics();//通过窗体对象来获得一个画笔
上代码
前面我们讲述了如何生成窗体并让鼠标画线,但是我们的画笔一直是现成的,要生成一个画笔我们用如下代码
JPanel jp = new JPanel(); Graphics gf = jp.getGraphics();有了窗体,鼠标监听和画笔,我们就可以画图了,效果图如下
大家刚刚看到我的效果图上面有很多按钮可以控制画不同的线,其实是我添加了很多按钮在面板上面,前面讲过添加MouseListener,如果要用到按钮的话,就要用某个按钮addActionListener,这样子按钮就可以监听到我们的行动,伪代码如下:
有了按钮之后,我们就可以通过按钮来设定不同的线条和画笔颜色,这些多种功能可以自己后期去实现,讲到现在为止,我们的画板已经可以画直线了,实现到这一步,我们发现如果把窗体拉大或者缩小,或者将窗口最小化再最大化画板上的内容会消失
画板的内容消失这不是我们所期待的,我们要怎么处理呢,这里就涉及到窗体的重绘机制,其实我们的窗体在发生大小变化时,会默认自动调用一个函数叫做paint(),如果我们要想自己画的东西不消失,就要重写paint方法,让他在重绘窗体的时候把我们的图形也画进去,那么一个最简单的想法,我们可以建立一个数组,将我们所有绘画的图案存进去然后在调用paint方法的时候,我们除了绘画窗体还要用一个for循环,将数组内部的图案取出来,画在画板上。伪代码如下:
上一篇:用java写一个简易画图板
下一篇:10.5(简单的绘图程序)...
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务