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 | 
|---|---|---|
| SliderDemoandSliderDemo2 | 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. | 
| ColorChooserDemoandColorChooserDemo2 | 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 Converterdemo.
     Both models explicitly fire change events when necessary. |