疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

图形界面的利器——监听器


 

    在java的编程中,对于图形界面不可避免的要使用监听器。在学习的过程中,我对于监听器的使用一直不是很明白。在后来的练习中自己琢磨老师的代码,自己尝试监听器所传的对象,还是可以用监听器来实现画图,分形等的制作。

  实现监听器的关键字是:implements

  格式:

  public class 类名 extends 类名或抽象类 implements 接口名,... {

  }

  类实现了监听器后,那么类必须要实现接监听器中的抽象方法,否则程序报错。就像下面的事件监听器方法:ActionListener(ActionListener al); 动作监听器方法 抽象方法为:鼠标的单击和键盘的回车MouseListener(MouseListener ml); 鼠标监听器方法 抽象方法为:鼠标进入事件源、离开事件源、在事件源按下,在事件源上释放,在事件源单击MouseMotionListener(MouseMotionListener mml);鼠标移动监听器方法 抽象方法为:鼠标在事件源移动时、鼠标在事件源拖动时KeyListener(KeyListener kl); 键盘监听器方法 抽象方法为:在事件源发生键盘操作(需要自己设定actioncommand)。

  也就说实现监听器时,要implements这些事件接口:ActionListener、MouseListener、MouseMotionListener、KeyListener。然后就可以在抽象方法中实现想要的监听效果,利用监听器画线,画点集画出分形图案。

  Java代码

  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);

  }

  }

  这是实现监听器类的代码,就是简单的利用监听器画一条线。

  Java代码

  JButton bu1= new JButton("开始");

  Graphics g1=this.getGraphics();

  DrawSanLis dsl=new DrawSanLis(g1,this);

  bu1.addActionListener(dsl);

  如上代码是监听器在要传到的类中的实现,将监听器传到一个按钮上。只要按下按钮就会触发监听器,监听器将调用抽象方法。在引用监听器的类中还要得到画布,从而在这个类中使用画布进行画线。新建的监听器对象运用重载的构造方法,将监听器加到按钮中。最终将两个类连接,并且在界面类中实现画线。

  各种的监听器都有自己独自的妙用,感觉自己对于监听器还不是很熟练。在以后的练习中只要有图形界面就会用到监听器,也会越来越复杂。理清各个类的关系与传值还是必须的。