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
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).
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
}
}
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();