对于一个按钮的事件(简单事件)的两种写法:
写法1:class ButtonAction extends ActionListener{
MainFrame mainFrame; public ButtonAction(MainFrame mainFrame){
this.mainFrame = mainFrame;
}
void actionPerformed(ActionEvent e){
mainFrame.doAction();
}
}
写法2:public class MainClass {
public MainClass {
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
doAction();
}
})
}
}
请教这两种写法在效率,可读性上等各个方面的差异???(代码简写了,doAction是事件处理函数)
写法1:class ButtonAction extends ActionListener{
MainFrame mainFrame; public ButtonAction(MainFrame mainFrame){
this.mainFrame = mainFrame;
}
void actionPerformed(ActionEvent e){
mainFrame.doAction();
}
}
写法2:public class MainClass {
public MainClass {
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
doAction();
}
})
}
}
请教这两种写法在效率,可读性上等各个方面的差异???(代码简写了,doAction是事件处理函数)
第二种使用惹名内部类的方式,代码量比较少,如果只有一个button需要添加event用这种就可以。
如果有多个button需要添加,那就用第一种,方便调用。
该说的LS都说了,匿名类适用于比较独立的处理,因为匿名类没法重用.
public void actionPerformed(ActionEvent e){
doAction(e.getActionCommand());
} private void doAction(String action){ //以action作为参数, 以使菜单和button可以共享事件的响应处理
//...
}
}