文档

Java™ 教程-Java Tutorials 中文版
如何编写项目监听器
Trail: Creating a GUI With JFC/Swing
Lesson: Writing Event Listeners
Section: Implementing Listeners for Commonly Handled Events

如何编写项目监听器

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 buttons like check boxes, check menu items, toggle buttons etc...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);
        ...
    } else {
        label.setVisible(false);
    }
}

The Item Listener API

The ItemListener Interface

Because ItemListener has only one method, it has no corresponding adapter class.

方法 目的
itemStateChanged(ItemEvent) Called just after a state change in the listened-to component.

The ItemEvent Class

方法 目的
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 examples that use item listeners.

例子 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 如何使用菜单 Listens for item events on a check box menu item.
MenuDemo 如何使用滚动窗格 Listens for item events on a toggle button.

Previous page: How to Write an Internal Frame Listener
Next page: How to Write a Key Listener