如何编写项目监听器

原文: https://docs.oracle.com/javase/tutorial/uiswing/events/itemlistener.html

项目事件由实现 ItemSelectable 接口的组件触发。通常,ItemSelectable组件保持一个或多个项目的开/关状态。触发项目事件的 Swing 组件包括复选框检查菜单项切换按钮等按钮,以及组合框

以下是 ComponentEventDemo.java 中的一些项目事件处理代码:

  1. //where initialization occurs
  2. checkbox.addItemListener(this);
  3. ...
  4. public void itemStateChanged(ItemEvent e) {
  5. if (e.getStateChange() == ItemEvent.SELECTED) {
  6. label.setVisible(true);
  7. ...
  8. } else {
  9. label.setVisible(false);
  10. }
  11. }

因为ItemListener只有一个方法,所以它没有相应的适配器类。

方法 目的
itemStateChanged(ItemEvent) 在收听组件的状态更改之后调用。
方法 目的
Object getItem() 返回与状态更改的项关联的特定于组件的对象。通常这是包含所选项目上的文本的String
ItemSelectable getItemSelectable() 返回触发 item 事件的组件。您可以使用它而不是getSource方法。
int getStateChange() 返回项的新状态。 ItemEvent类定义了两种状态:SELECTEDDESELECTED

下表列出了一些使用项监听器的示例。

在哪里描述 笔记
ComponentEventDemo 本节和如何编写组件监听器 在复选框上侦听项目事件,该复选框确定标签是否可见。
CheckBoxDemo 如何使用复选框 四个复选框共享一个项目监听器,它使用getItemSelected来确定触发事件的复选框。
MenuDemo 如何使用菜单 在复选框菜单项上侦听项目事件。
MenuDemo 如何使用滚动窗格 在切换按钮上收听项目事件。