刚学习了!JAVA的GUI监听接口!感觉有很大的疑问那位高手指点一下!
ActionListener 所有的接口都是在这实现的吗?知道的太少了!最好能交下怎么看API感觉就找不到这些这些接口在哪???

解决方案 »

  1.   

    一个监听接口是需要被一个组件(如Button、Frame、Panel)添加的,你要给一个组件添加监听,就要找里面的add...Listener方法,比如找Button类,就会看到里面的 void addActionListener(ActionListener l) 方法,这时就会发现,Button只能添加ActionListener这个监听接口,仔细想一想这个接口,应该是代表了Button执行的动作,那么无疑就是被点击。所以如果你想在点一个按钮的时候实现一些东西,就要找Button类,看看里面有什么添加接口的方法,于是就查到了void addActionListener(ActionListener l),然后再查查ActionListener这个接口需要实现哪些方法,之后查到了void actionPerformed(ActionEvent e) ,所以只要重写这个方法就可以了。而ActionEvent e 里面就是记载着发生操作时的信息,比如被点的按钮是哪个等等。这样,来做个实例,假如你想要在已经运行了一个Frame时,当按下键盘就会在后台输出你按下的是哪个键,要如何写呢。你可以先找到Frame类,你会发现他里面没有add...Listener方法,那么如果他没有,就一定是他的父类提供了添加监听的方法,于是在下面找他的父类java.awt.Window、java.awt.Container、java.awt.Component,发现里面有一些添加监听的方法,比如addWindowListener、addMouseListener、addKeyListener,而你想对他添加对键盘的监听,当然就是addKeyListener了,点进去看一下,public void addKeyListener(KeyListener l),他需要被传进来一个KeyListener,再点进KeyListener看一下,他有3个方法,void keyPressed(KeyEvent e)、void keyReleased(KeyEvent e)、void keyTyped(KeyEvent e),而Pressed可以被翻译成按下的意思,键盘被按下当然就是keyPressed这个方法了,那么重写这个方法就可以了,而KeyEvent e 里面同样是记载着发生当前操作时的一些数据,其中就有按下了哪个键,要如何得到呢,点进去KeyEvent里面看一下,可以看到他提供了一个getKeyChar()方法,这时只要打印出e.getKeyChar()的值,就OK了。需要说明的是,KeyListener这个接口有3个方法需要被实现,比较不好写,所以Java也提供了对这个接口进行空实现的类,就是把Listener换成Adapter,这样只要写你想实现的方法就可以了。以上操作写成代码就是这样:import java.awt.Frame;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;public class MyFrame extends Frame { public MyFrame() {
    this.setSize(400, 400);
    this.setVisible(true);

    this.addKeyListener(new KeyAdapter() {
    public void keyPressed(KeyEvent e) {
    System.out.println(e.getKeyChar());
    }
    });
    }

    public static void main(String[] args) {
    new MyFrame();
    }}
      

  2.   

    Java的事件监听器接口都没学过  总是感觉gui了解就成  不用学那么深重要的是java ee 而不是Java se
      

  3.   

    当然不是啦!每个事件类型都有相应的监听者接口。例如要接收MouseEvent的话就要实现MouseListeener这个接口,这要看你遇到的事什么要的事件源了。
    建议没事看一下API,还有JDK下的swing包中的源代码,比较有帮助!!!!!!
      

  4.   

    事件和监听这个事件的接口是一一对应的
    事件源对象:发生事件的那个对象
    事件对象:封装了某种事件的具体信息的对象
    监听器对象:实现了某种监听器接口的类的对象
    就是说你要监听哪个事件API中都是EVENT结尾的类(如ActionEvent)去找他的事件监听器的接口API中都是LISTENER(如ActionListener)结尾的一个接口,你去实现这个接口,重写里面的方法,方法中写你监听到事件后要做什么处理,
    然后在事件源对象上添加这个时间监听器的对象