我刚刚学习java, 发现有这样的代码。它的意思是为
textArea添加一个时间监听,但是这个代码从语法上面好怪啊,那位可以帮忙解释一下吗?还有就是processTextArea是在那里实现的啊?是在textArea所在的类里面写的吗?因为我也看见这个类在上面也有定义了processTextArea函数
谢谢哦        textArea.addKeyListener(
            new KeyAdapter() {
                public void keyTyped(KeyEvent e) {
                    processTextArea();
                }
            }

解决方案 »

  1.   

    processTextArea不是应该由你实现的吗?
    看一下源代码吧
      

  2.   

    “还有就是processTextArea是在那里实现的啊?是在textArea所在的类里面写的吗?因为我也看见这个类在上面也有定义了processTextArea函数”
    ---------
    都看见上面定义了,还来问?不就是这个方法吗
      

  3.   

    匿名类
    等效于下面代码
    class MyKeyAdapter extends KeyAdapter
    {
       public void keyTyped(KeyEvent e) {
                        processTextArea();
                    }
    }
    textArea.addKeyListener(new MyKeyAdapter());
      

  4.   

    大概明白了
    但是匿名类调用的是上级类的方法?
    也就是processTextArea调用的是上级类中的函数?
    感觉比较奇怪啊
      

  5.   

    去看看think in java比较好,这么学也不系统,对你没好处
      

  6.   

    匿名内置类,就是在调用的地方定义
    一般的调用:textArea.addKeyListener(new MyKeyAdapter());
    这里直接在new MyKeyAdapter()后加个{}把它给实现了,{}中放置了类中定义的方法。
      

  7.   

    还有应该改为:
    textArea.addKeyListener(new MyKeyAdapter()
    {
       public void keyTyped(KeyEvent e) {
                        processTextArea();
                    }
    });
    你少了);