这个关键字指的是什么?

时间:2013-08-15 10:46:02

标签: java button this actionlistener

我认为我对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引用了什么。

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

这个这里指的是你的动作监听器实例。

答案 1 :(得分:4)

其中

 new ActionListener(){



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

        });

是一个新的匿名内部类,其中this引用ActionListener的当前实例