在上一章我们学会了如何用paint函数在窗体上来绘制我们想要的图形,但是如果每次绘图都要这样操作,实在太麻烦了。于是,我们可以考虑用鼠标来绘制。
就像之前我们的ActionListener一样,我们这次要用到的也是一个接口,叫做MouseListener。
MouseListener作用:
1.可以得到鼠标的操作信息,如坐标,按键,使用方式。
2.可以在相关操作后执行定义好的方法。
那让我们开始做一个画板吧。
1.加上按钮(可以使得画板作用更清晰,而方法在界面设计中已经提到)2. 创建新的类来实现接口了。(值得注意的是,这次我们用到了ActionListener与MouseListener两个接口,可以同时实现)
3.复制接口的方法。
按住ctrl,同时点击接口,在里面进行复制,粘贴到{}内。否则,将会报错。
4.将按钮与界面都和监听器绑定在一起。
5.写好按钮的反应(因为我们点击按钮,只是为了知道要绘制什么图形,所以只用得到命令)
6.写好鼠标的反应:
a.鼠标按压(释放)时记录鼠标坐标(释放与下图同理):
值得注意的MouseEvent参数e中含有鼠标信息。
b:释放操作添加绘制命令。
每一个可视化对象对应都有一个Graphics g,而我们需要将界面的g传给我们Mouse类中,否则无法判断在何处绘制。
判断好后,开始设置绘制命令:
值得注意的是,由于圆(矩形)参数为起点,宽,高。
我们要将横纵坐标的小值作为起点,横纵坐标差的绝对值作为宽/高。
不然的话,容易出现当鼠标不往右下角移动,无法绘制圆与矩形,或者与移动方向不同。
7.最后检验效果: