我认为我对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
引用了什么。
感谢您的帮助。
答案 0 :(得分:4)
这个这里指的是你的动作监听器实例。
答案 1 :(得分:4)
其中
new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
//here this referes to ActionListener
}
});
是一个新的匿名内部类,其中this
引用ActionListener
的当前实例