前几天,使用Graphics类画笔时,发现了许多有趣的现象,用for循环实现颜色和形状的渐变;此外,还发现了在JFrame中画动态图的方法。
下面是画图的效果:
用for循环画的gif图
首先,定义一个DrawFrame类,继承自JFrame类,类中有main函数和一般方法showUI()。showUI用于实现图形界面;同样,需要加一个鼠标监听器,以实现用鼠标画图的功能。
使用JFrame的方法getGraphics,得到窗体的画笔,实例化DrawListener()并把画笔传过去,再给事件源JFrame添加鼠标监听器方法。
java.awt.Graphics g = this.getGraphics();//调用画笔Graphics赋予g,必须写在setVisible后面,否则为null
DrawListener dl = new DrawListener(g);//实例化DrawListener事件接口对象
this.addMouseListener(dl);//给事件源(JFrame)添加鼠标监听器方法
再定义一个DrawListener类,实现MouseListener接口。实现接口必须重写其所有的抽象方法;另外,为了把JFrame的Graphics传到DrawListener类中进行处理,使用构造方法传参或set方法传参。