请教匿名监听器的问题
匿名监听器的优势在哪里?缺点又是什么?
为什么我用匿名监听器写JOptionPane时
jbt.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"成功"); //为什么参数不能用this,我这个this代表的是JFrame,符号: 方法 showMessageDialog(<匿名 java.awt.event.ActionListener>,java.lang.String)
位置: 类 javax.swing.JOptionPane
JOptionPane.showMessageDialog(this,"成功"); 报错,而null却正常编译呢?
}
}
);
----------------解决方案--------------------------------------------------------
优势是生成方便,你可以不为这个类取名字,
缺点是,用多了以后,你的代码可读性差
你为什么 不能用this,因为this指的是内部类的对象,它怎么可能是JFrame呢
你要指向外部类的对象可以这样
假设你的外部类名字叫MyFrame
那么你可以传进去MyFrame.this
它代表外部类的对象
----------------解决方案--------------------------------------------------------
谢谢你的指导,很容易让人明白,我从中又学到了点东西,后面的代码我会加以改进的
----------------解决方案--------------------------------------------------------