Java具有十分丰富的绘图功能,通过调用对象方法,可以实现众多诸如绘制直线,矩形,圆形等功能。
通过实现一个仿画图软件的画图板,可以让我们更好的了解Java中的众多绘图机制,并能够加深对事件概念的认识和使用
在Java中,我们通过使用Graphics和Graphics2D类创建的画笔画布对象,来实现一些基本绘图功能。
首先创建一个继承JFrame的画板类,创建一个窗体对象作为画板,我们便在其上来实现绘画功能。上面说过,我们是通过Graphics类对象来实现绘图功能的,可以通过JFframe窗体对象的getGraphics方法获取该窗体的画笔画布对象,然后便可实现在窗体上的绘图工作。
其次,想像一下,如果要在画板上绘制一条直线,那么应该在窗体上点击鼠标,拖动鼠标,释放鼠标,然后绘制出一条直线,这便要求用到事件机制,可以创建一个监听类继承MouseAdapter类,来实现鼠标上的各种事件监听,MouseAdapter类里包含了所有关于鼠标事件的实现。然后将前面获取的Graphics对象传给监听类,当触发鼠标事件时,便用该getGraphics对象来绘制图案。
简单图形绘制:
1.画直线
绘制一条直线,可以调用Graphics类的drawLine()方法来实现,该方法的API文档介绍如下:
public abstract voiddrawLine(int x1,int y1,int x2,int y2)
在此图形上下文的坐标系中,使用当前颜色在点(x1, y1)
和(x2, y2)
之间画一条线。
参数:
x1
- 第一个点的x 坐标。
y1
- 第一个点的y 坐标。
x2
- 第二个点的x 坐标。
y2
- 第二个点的y 坐标。
我们可以在鼠标按下时获取第一个点坐标,鼠标释放时获取第二个点坐标,然后通过此方法来画一条直线。