When an XXXEvent is generated, a method of the XXXListener class will be invoked. The name of the method depends on the type of listener. It can be determined by looking at the appropriate class description in the following sections.
A common construction for adding listener uses anonymous constructors. For example, an action listener can be added to a button with the following code.
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
statements to implement response to button press
}
});
An ActionEvent is generated by a variety of user actions such as clicking a
button, hitting the return key in a text field, or selecting a menu item.
Programming a response to an ActionEvent involves writing an implementation
of the ActionListener interface, which requires implementing an
actionPerformed() method.
The Action interface extends the Action interface, adding methods for storing and retrieving additional information about an action such as a label or an icon for buttons, or a short description for rollover text. Many of the components that use action listeners have constructors with an Action parameter. This makes it possible to define responses to the user that are enabled in several different ways. Programs often have an extensive set of menus with the most frequently used menu item also available as tool bar buttons. This is accomplished by creating a single Action and using it to construct both the tool bar button and the menu item.
The Action interface also defines String constants that should be used for the String parameter of the above methods.
Although the Action interface can be used as a variable type, Action objects are usually constructed with an an anonymous constructor that subclasses the AbstractAction class described below.
The AbstractAction class implements all of the Action interface methods
except for the actionPerformed() method.
The following template can be used for defining Action variables.
Action action = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
statements to implement action response
}
});
// send putValue() messages to actionto configure it
A ChangeEvent is generated when the user adjusts a JSlider or when a
JCheckBox or JToggleButton changes state.
You can program a response to the ChangeEvent by creating a ChangeListener
and registering it with the JSlider, JCheckBox, or JToggleButton.
The response is implemented in the ChangeListener's
stateChanged() method.
An ItemEvent is generated when the user selects one of the items in a
JComboBox.
You can program a response to the ItemEvent by creating a ItemListener and
registering it with the JComboBox.
The response is implemented in the ItemListener's
itemStateChanged() method.
A ListSelectionEvent is generated by when the user selects one of the items
in a JList.
You can program a response to the ListSelectionEvent by creating a
ListSelectionListener and registering it with the JList.
The response is implemented in the ListSelectionListener's
valueChanged() method.