0

this我以为我对关键字有很好的把握。有些事情让我有点困惑。

我有一个向我的按钮添加 ActionListener 的方法。这就是方法的样子

public void checkButtonState(){

        button1.addActionListener(new ActionListener(){



            @Override
            public void actionPerformed(ActionEvent arg0) {

            }

        });


    }

我的类中也有一个构造函数方法。它看起来像这样

public CanvasA(){
        try{
            CanvasABackground = ImageIO.read(new File("C:\\Users\\user\\workspace\\Interface\\src\\01120156745.jpg"));

        }catch(IOException ex){

        }


        setSize(450,490);
        setLayout(null);
        JLabel picLabel = new JLabel(new ImageIcon(CanvasABackground));
        add(picLabel);
        createEnterButton();
        createCloseButton();
        checkButtonState();
        checkButtonState2();
    }

在构造函数中使用this关键字时,我会弹出许多不同的方法。例如,打字this.会生成许多刚刚调用的方法add和许多其他方法。但是,this.在里面输入

@Override
            public void actionPerformed(ActionEvent arg0) {

            }

方法,生成完全不同的方法..基本上this关键字是指别的东西。在第一种情况下,它是在谈论我的CanvasA课程(顺便说一句,它扩展了 JPanel)。我很好奇this在方法中输入什么是引用actionPerformed

谢谢你的帮助。

4

2 回答 2

4

这里的this指的是您的动作侦听器实例。

于 2013-08-15T10:47:44.763 回答
4

在哪里

 new ActionListener(){



            @Override
            public void actionPerformed(ActionEvent arg0) {
                  //here this  referes to  ActionListener
            }

        });

是一个新的 Annaymous 内部类,里面this 引用了当前的实例 ActionListener

于 2013-08-15T10:47:49.050 回答