Several Swing components (including JTabbedPane , JViewPort) rely on change events for basic functionality — sliders, color choosers and spinners. To learn when the value in a slider changes, you need to register a change listener. Similarly, you need to register a change listener on a color chooser to be informed when the user chooses a new color. You register a change listener on a spinner , a component introduced in release 1.4, to be notified when the spinner's value changes.
Here is an example of change event handling code for a slider:
//...where initialization occurs:
framesPerSecond.addChangeListener(new SliderListener());
...
class SliderListener implements ChangeListener {
public void stateChanged(ChangeEvent e) {
JSlider source = (JSlider)e.getSource();
if (!source.getValueIsAdjusting()) {
int fps = (int)source.getValue();
...
}
}
}
SliderDemo in the
example index for Using Swing Components
.
Because ChangeListener has only one method,
it has no corresponding adapter class.
| Method | Purpose |
|---|---|
| stateChanged(ChangeEvent) | Called when the listened-to component changes state. |
| Method | Purpose |
|---|---|
|
Object getSource()
(in java.util.EventObject)
|
Returns the object that fired the event. |
| Example | Where Described | Notes |
|---|---|---|
SliderDemo and
SliderDemo2
|
Getting Started | Registers a change listener on a slider that controls animation speed. The change listener ignores the change events until the user releases the slider. |
ColorChooserDemo and
ColorChooserDemo2
|
How to Use Color Choosers | Uses a change listener on the selection model of a color chooser to learn when the user changes the current color. |
SpinnerDemo3
|
Detecting Spinner Value Changes in How to Use Spinners . | Uses a change listener on a date-field spinner to change the color of the text as the spinner's date changes. |
SpinnerDemo4
|
Detecting Spinner Value Changes in How to Use Spinners . | Uses a change listener on a spinner to cycle through the gray scale as the spinner's value changes. |
ConverterRangeModel
and its subclass, FollowerRangeModel
|
Getting Started | Implement custom models for the sliders used
in the
Converter demo.
Both models explicitly fire change events when necessary.
|