public class myPanel extends JPanel {
private JButton bt=new JButton("h");
private ActionListener action=null;
public myPanel(){
this.add(bt);
bt.addActionListener(action);
}
public void setActionListener(ActionListener ac){
this.action=ac;
}
}
这个类很简单,只有一个按钮,然后我给他加了一个未实现的监听器,我的目的是以后实现再通过setActionListener方法传入,但实际上不起作用,我后来写了一个类实现ActionListener 然后传入,一点反应都没有,跟踪显示根本就没执行到actionPerformed方法.这是为什么?
private JButton bt=new JButton("h");
private ActionListener action=null;
public myPanel(){
this.add(bt);
bt.addActionListener(action);
}
public void setActionListener(ActionListener ac){
this.action=ac;
}
}
这个类很简单,只有一个按钮,然后我给他加了一个未实现的监听器,我的目的是以后实现再通过setActionListener方法传入,但实际上不起作用,我后来写了一个类实现ActionListener 然后传入,一点反应都没有,跟踪显示根本就没执行到actionPerformed方法.这是为什么?
public void setActionListener( JButton bt, ActionListener ac ){
if(bt != null && ac != null){
bt.add(ac)
}
}
bt.addActionListener(action); 相当于bt.addActionListener(null);
这样的情况下你还想执行什么事件呢?
比如
object o1=null;
object o2=o1;
o1=new String("111");这个时候o2还是NULL啊
就是好你的类的方法的形参的名字不小心与好i你的类的成员变量同名了,而你此时的类的成员action有恰好给null,所以addlistener(null)给执行了,所以就没看你相想要的结果啦!!
哎散点分啦
手多冻僵了
好冷啦。下雪了!!