日期:2014-05-19  浏览次数:20828 次

现在还刚刚开始学Java。遇到了一个问题。。老师在课上说的是指JButton但是我认为指的是ActionListener???有谁能帮我理解下吗??求大神们帮助
这里的LoginFrame.this 的this指的是JButton还是ActionListener呢?????
private JPanel createBtnPanel() {
JPanel pane = new JPanel(new FlowLayout());
JButton btnLogin = new JButton("登录");
btnLogin.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
//登录代码
context.login(LoginFrame.this);
}
});
pane.add(btnLogin);
JButton btnReg = new JButton("注册用户");
btnReg.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {


}
});
pane.add(btnReg);
JButton btnCancle = new JButton("取消");
btnCancle.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub

}
});
pane.add(btnCancle);
return pane;
}
------最佳解决方案--------------------
没懂你1L的意思,你要知道是什么类
直接System.out.println(this);
------其他解决方案--------------------
如果你用LoginFrame.this的话,这个this指代的就是当前你这个类 LoginFrame对象
如果你在注册的监听器里面直接用this的话,那这个this指代的是 你注册的监听器的一个实现类的对象,这里也就是那个ActionListener这个类的一个实现类的对象
------其他解决方案--------------------
我想说的是 若把LoginFrame。this的Login 去了