先看一段代码 import java.awt.*;
import java.awt.event.*;
public class CH13_01 implements ActionListener
{
Frame frmFrame;
Button btnUp, btnDown;
public CH13_01()
{
frmFrame = new Frame("按钮应用");
frmFrame.setLayout(new GridLayout(2,1));
//产生按钮一
btnUp = new Button("上");
btnUp.setActionCommand("btnUp");
btnUp.addActionListener(this);
//产生按钮二
btnDown = new Button("下");
btnDown.setActionCommand("btnDown");
btnDown.addActionListener(this);
frmFrame.add(btnUp);
frmFrame.add(btnDown);
frmFrame.pack();
frmFrame.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String cmd = e.getActionCommand();
if ( cmd.equals("btnDown") )
{
if (btnUp.getBackground()==Color.BLUE)
{
btnUp.setBackground(Color.red);
}
else
{
btnUp.setBackground(Color.blue);
}
}
else
{
if (btnDown.getBackground()==Color.BLUE)
{
btnDown.setBackground(Color.red);
}
else
{
btnDown.setBackground(Color.blue);
}
}
}
public static void main(String[] args)
{
new CH13_01();
} }
我想问的是在产生按钮的代码段中 btnUp.addActionListener(this);中的this指的是什么?我尝试去理解,将这个this分别换成btnUp,CH13_01,frmFrame都发生编译错误,不能理解,希望高手指教.
不幸运得是我没理解1楼的回答,在这个代码里,这个this所指代的行为是不是唯一?倘若同时出现了方法或者成员或者操纵火灾的类,它应该如何选择指代?或者直接报错?我想以一种不用专业术语来解释而是靠理解去赋予自己的概念去理解这个this的作用,不过关于1楼的代码还是让我有点反映,3Q