在java的编程中,对于图形界面不可避免的要使用
监听器。在学习的过程中,我对于监听器的使用一直不是很明白。在后来的练习中自己琢磨老师的代码,自己尝试监听器所传的对象,还是可以用监听器来实现
画图,分形等的制作。
实现监听器的
关键字是:implements
格式:
public
class 类名 extends 类名或抽象类 implements
接口名,... {
}
类实现了监听器后,那么类必须要实现接监听器中的抽象方法,否则程序报错。就像下面的事件监听器方法:ActionListener(ActionListener al); 动作监听器方法 抽象方法为:鼠标的单击和键盘的回车
MouseListener(MouseListener ml); 鼠标监听器方法 抽象方法为:鼠标进入事件源、离开事件源、在事件源按下,在事件源上释放,在事件源单击
MouseMotionListener(MouseMotionListener mml);鼠标移动监听器方法 抽象方法为:鼠标在事件源移动时、鼠标在事件源拖动时
KeyListener(KeyListener kl); 键盘监听器方法 抽象方法为:在事件源发生键盘操作(需要自己设定action
command)。
也就说实现监听器时,要implements这些事件接口:ActionListener、MouseListener、MouseMotionListener、KeyListener。然后就可以在抽象方法中实现想要的监听效果,利用监听器画线,画点集画出分形图案。
public class DrawSanLis implements ActionListener{
private Graphics g;
//监听器要传到的类的新建对象,使监听器传到其中
private ShaiZi dr;
//重载监听器的构造方法,使添加监听器的时候添加画布
public DrawSanLis(Graphics g,ShaiZi dr) {
this.g = g;
this.dr=dr;
}
//ActionListener的抽象方法
public void actionPerformed(ActionEvent e) {
g.drawLine(1,1,2,2);
}
}
这是实现监听器类的代码,就是简单的利用监听器画一条线。
JButton bu1= new JButton("开始");
Graphics g1=this.getGraphics();
DrawSanLis dsl=new DrawSanLis(g1,this);
bu1.addActionListener(dsl);
如上代码是监听器在要传到的类中的实现,将监听器传到一个按钮上。只要按下按钮就会触发监听器,监听器将调用抽象方法。在引用监听器的类中还要得到画布,从而在这个类中使用画布进行画线。新建的监听器对象运用重载的构造方法,将监听器加到按钮中。最终将两个类连接,并且在界面类中实现画线。
各种的监听器都有自己独自的妙用,感觉自己对于监听器还不是很熟练。在以后的练习中只要有图形界面就会用到监听器,也会越来越复杂。理清各个类的关系与传值还是必须的。