Start of Tutorial > Start of Trail > Start of Lesson |
Search
Feedback Form |
You can tell what kinds of events a component can fire by looking at the kinds of event listeners you can register on it. For example, theJComboBox
class defines these listener registration methods:Thus, a combo box supports action, item, and popup menu listeners in addition to the listener methods it inherits from
addActionListener
addItemListener
addPopupMenuListener
JComponent
.A component fires only those events for which listeners have registered on it. For example, if an action listener is registered on a particular combo box, but the combo box has no other listeners, then the combo box will fire only action events no item or popup menu events.
Listeners supported by Swing components fall into two categories:
Because all Swing components descend from the AWTComponent
class, you can register the following listeners on any Swing component:
- component listener
- Listens for changes in the component's size, position, or visibility.
- focus listener
- Listens for whether the component gained or lost the ability to receive keyboard input.
- key listener
- Listens for key presses; key events are fired only by the component that has the current keyboard focus.
- mouse listener
- Listens for mouse clicks and mouse movement into or out of the component's drawing area.
- mouse-motion listener
- Listens for changes in the cursor's position over the component.
- mouse-wheel listener (introduced in 1.4)
- Listens for mouse wheel movement over the component.
Two listener types introduced in release 1.3,
HierarchyListener
andHierarchyBoundsListener
, listen to changes to a component's containment hierarchy. These listener types aren't useful to most programs and can generally be ignored.All Swing components descend from the AWT
Container
class, but many of them aren't used as containers. So, technically speaking, any Swing component can fire container events, which notify listeners that a component has been added to or removed from the container. Realistically speaking, however, only containers (such as panels and frames) and compound components (such as combo boxes) typically fire container events.
JComponent
provides support for three more listener types. You can register an ancestor listener to be notified when a component's containment ancestors are added to or removed from a container, hidden, made visible, or moved. This listener type is an implementation detail which predated hierarchy listeners and can generally be ignored.The other two listener types are part of the Swing components' conformance to the JavaBeansTM specification. Among other things, this means that Swing components support bound and constrained properties and notify listeners of changes to the properties. Property change listeners listen for changes to bound properties and are used by several Swing components, such as formatted text fields, to track changes on a component's bound properties. Also, property change listeners, as well as vetoable change listeners are used by builder tools to listen for changes on constrained properties. For more information refer to the Properties lesson in the JavaBeans trail.
The following table lists Swing components and the specialized listeners they support, not including listeners supported by allComponent
s,Container
s, orJComponent
s. In many cases, the events are fired directly from the component. In other cases, the events are fired from the component's data or selection model. To find out the details for the particular component and listener you're interested in, go first to the component how-to section, and then if necessary to the listener how-to section.
Start of Tutorial > Start of Trail > Start of Lesson |
Search
Feedback Form |
Copyright 1995-2005 Sun Microsystems, Inc. All rights reserved.