The JavaTM Tutorial

| Start of Tutorial > Start of Trail > Start of Lesson | Search Feedback Form

Trail: Creating a GUI with JFC/Swing
Lesson: Writing Event Listeners

## How to Write an Item Listener

> Item events are fired by components that implement the `ItemSelectable` interface. Generally, `ItemSelectable` components maintain on/off state for one or more items. The Swing components that fire item events include check boxes, check box menu items, and combo boxes.

> Here is some item-event handling code taken from `ComponentEventDemo.java`:

> >     ...
> >     //where initialization occurs
> >     checkbox.addItemListener(this);
> >     ...
> >     public void itemStateChanged(ItemEvent e) {
> >         if (e.getStateChange() == ItemEvent.SELECTED) {
> >             label.setVisible(true);

> >             label.revalidate();
> >             label.repaint();
> >         } else {
> >             label.setVisible(false);
> >         }
> >     }

### The Item Event API

> The `ItemListener` interface has just one method, so it has no corresponding adapter class. Here's the method:
> `void itemStateChanged(ItemEvent)`
>   Called just after a state change in the listened-to component.
> The `itemStateChanged` method hod has a single parameter: an `ItemEvent` object. The `ItemEvent` class defines the following handy methods:
> `Object getItem()`
>   Returns the component-specific object associated with the item whose state changed. Often this is a `String` containing the text on the selected item.
> `ItemSelectable getItemSelectable()`
>   Returns the component that fired the item event. You can use this instead of the `getSource` method.
> `int getStateChange()`
>   Returns the new state of the item. The `ItemEvent` class defines two states: `SELECTED` and `DESELECTED`.

### Examples that Use Item Listeners

> The following table lists some of examples that use item listeners.

> Example | Where Described | Notes
> --- | --- | ---
> `ComponentEventDemo` | This section and How to Write a Component Listener | Listens for item events on a check box, which determines whether a lable is visible.
> `CheckBoxDemo` | How to Use Check Boxes | Four check boxes share one item listener, which uses `getItemSelected` to determine which check box fired the event.
> `MenuDemo` | How to Use Menus | Listens for item events on a check box menu item.

| Start of Tutorial > Start of Trail > Start of Lesson | Search Feedback Form