在学awt事件处理过程中,我以前做法是实现actionlistener,然后添加监听,最后在响应事件的方法里面处理,我一般是这么处理的:public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==xxx)
但是我老师说不建议用这个,而是用if(e.getActionCommand().equals("xxx")),,但是同一个类里面有很多个相同名称的xxx控件时那该怎么区分是哪个控件产生的事件呢?但是第一种方法不会遇到此问题。我老师说第一种要转换类型,有时候。,我也没听清楚!
// TODO Auto-generated method stub
if(e.getSource()==xxx)
但是我老师说不建议用这个,而是用if(e.getActionCommand().equals("xxx")),,但是同一个类里面有很多个相同名称的xxx控件时那该怎么区分是哪个控件产生的事件呢?但是第一种方法不会遇到此问题。我老师说第一种要转换类型,有时候。,我也没听清楚!
vs
if(e.getActionCommand().equals("xxx"))
是你的理解错了
if(e.getSource()==xxx)
xxx为组件名
if(e.getActionCommand().equals("xxx"))
xxx为标题简单点就是
Button btn =new Button("Button");
if(e.getSource()==btn)
if(e.getActionCommand().equals("Button"))
如:Button b1=new Button("Button");
Button b2=new Button("Button");
Button b3=new Button("Button");
Button b4=new Button("Button");
那if(e.getActionCommand().equals("Button"))这个不能区分吧!?
用getSource().equal(XXX)的话,XXX必须要是全局变量。如果用内部匿名类的,XXX也必须是final。
== 只能是值之间的比较
equals() 是针对引用之间的比较