`
猴00子
  • 浏览: 6748 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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

    博客分类:
  • 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。然后就可以在抽象方法中实现想要的监听效果,利用监听器画线,画点集画出分形图案。
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);

如上代码是监听器在要传到的类中的实现,将监听器传到一个按钮上。只要按下按钮就会触发监听器,监听器将调用抽象方法。在引用监听器的类中还要得到画布,从而在这个类中使用画布进行画线。新建的监听器对象运用重载的构造方法,将监听器加到按钮中。最终将两个类连接,并且在界面类中实现画线。
    各种的监听器都有自己独自的妙用,感觉自己对于监听器还不是很熟练。在以后的练习中只要有图形界面就会用到监听器,也会越来越复杂。理清各个类的关系与传值还是必须的。
0
2
分享到:
评论
3 楼 猴00子 2013-06-04  
freezingsky 写道
标题中的利器,第一反应我以为是想介绍相关的图形包。没想到进来看到的,却是设计模式中的相关内容。。

这个我还没有那么高端,我是接触java的新手
2 楼 allloveend 2013-06-04  
  不是实现监听器接口吗?
1 楼 freezingsky 2013-06-03  
标题中的利器,第一反应我以为是想介绍相关的图形包。没想到进来看到的,却是设计模式中的相关内容。。

相关推荐

Global site tag (gtag.js) - Google Analytics