class MutableCaretEvent extends CaretEvent
{
MutableCaretEvent(){
super(JEditTextArea.this);
}
//获得插入符的位置。
public int getDot(){
return getCaretPosition();
}
//获得逻辑选择的另一端的位置。如果没有进行选择,则此位置将与 dot 相同
public int getMark(){
return getMarkPosition();

        } 
MutableCaretEvent继承了CaretEvent这个用于通知感兴趣的参与者事件源中的文本插入符已发生更改的事件,虽然CaretEvent的构造函数为CaretEvent(java.lang.Object arg0),但是在构造函数中如此使用super(JEditTextArea.this);写法有些不明白,望知道的TX指导一下,谢谢。

解决方案 »

  1.   

    JEditTextArea.this 有这种写法?我好像没看过
      

  2.   

    MutableCaretEvent 是从CaretEvent继承
    //以下是构造函数
    MutableCaretEvent(){ 
    super(JEditTextArea.this); //调用基类也就是CaretEvent的构造函数
    }
      

  3.   

    super调用我明白,我不明白的是super(JEditTextArea.this); 中,JEditTextArea.this的意义是什么。
      

  4.   

    你的代码应该没有帖全的!按你的代码分析,MutableCaretEvent是一个内部类用来处理某个事件,它是包装类(上一层类)应该是JEditTextArea,见如下代码:
    class MutableCaretEvent{   
      MutableCaretEvent(){ 
        super(JEditTextArea.this); 
      } 
    }
    super(JEditTextArea.this);就是调用MutableCaretEvent基类的构造函数,
    并把MutableCaretEvent的包装类(EditTextArea类)当前引用的作为参数。
    这个是内部类访问其外部类的当前引用的语法而已,没有什么可说的,知道就可以了
      

  5.   

    在类MutableCaretEvent中的构造函数里,调用super的时候,参数要求的类型为JEditTextArea,所以要调用super(JEditTextArea.this),指的是JEditTextArea类型的对象,
    因为MutableCaretEvent为JEditTextArea的子类,所以要这么写