What does ActionEvent e mean?

≯℡__Kan透↙ 提交于 2020-12-25 18:13:23

问题


I am learning Java and would really like to have a deeper understanding of what the ActionEvent e perameter means and stands for. When I code I don't just want to spit out lines that work, but I don't understand. I want to have a full understanding of concepts before I use them.

So what specifically is it asking for and what do the two parts(ActionEvent and e) mean?

class ButtonListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e){
    }
}

Thanks.


回答1:


ActionEvent is a class, e is an instance of that class. You can use e to call it's methods/properties, found here

http://docs.oracle.com/javase/7/docs/api/java/awt/event/ActionEvent.html

ActionEvent is just a type, it informs you what type of object e is. By the way, you can change e to whatever you prefer, for ex. event or object.

ActionEvent event, ActionEvent object (remember, not to be confused with Object, its object with lower case "o"), ActionEvent anyVariableName etc...

Then inside actionPerformed() you can call stuff like event.doSomething();




回答2:


The ActionEvent is an "event" that your listener catches, as sent by a dispatcher. This mean, in layman's terms, that some thread somewhere has decided that your actions (i.e. clicking a button, etc.) have caused an action to occur, and informs the System. Your listener picks up on this, and takes a reference as the parameter e. This may help to shed a bit more light on what/why the action is; and, it may be beneficial to check out the Event Dispatch Thread (EDT).




回答3:


This should help you: http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html

Basically,ButtonListener is your ActionListener Implementation. You will use it like

someButton1.addActionListener(new ButtonListener());
someButton2.addActionListener(new ButtonListener());

It will listen for any action events on the buttons 'someButton1' and 'someButton2'.But we might want to handle clicks on both buttons in a different way. Thats when ActionEvent is of use.

Inside method,we can do this by following

@Override
public void actionPerformed(ActionEvent e){
    if(e.getActionCommand().equals("Button 1")){
        //Process Button 1 action event here 
    }
    else if(e.getActionCommand().equals("Button 2")){
        //Process Button 2 action event here 
    }

}


来源:https://stackoverflow.com/questions/31216051/what-does-actionevent-e-mean

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!