我的代码是:
JButton btnNewButton = new JButton("ok"); //JButton btnNewButton = new JButton("Ok");
btnNewButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0) {
if(arg0.getSource().equals(btnNewButton))
{
}
}
当我写这个仍然得到错误。如果(arg0.getSource()。equals(btnNewButton))得到错误请任何人修复它
答案 0 :(得分:6)
匿名内部类无法访问本地变量,除非它们已被声明为 final 。将btnNewButton
的声明更改为final JButton btnNewButton = ..."
会使其有效。
但是,由于您使用的是除btnNewButton
之外的其他任何内容的匿名侦听器,因此您已经知道事件源必须为btnNewButton
,并且整个检查都是多余的。
答案 1 :(得分:1)
试试这段代码
JButton btnNewButton = new JButton("ok"); //JButton btnNewButton = new JButton("Ok");
btnNewButton.addActionListener(this);
public void actionPerformed(ActionEvent ae) {
if(ae.getSource().equals(btnNewButton))
{
////do your code here
}