本教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9及后续版本中更新的语言特性的概述。
请参阅JDK发行说明,了解所有JDK版本的新功能、增强功能以及已移除或废弃选项的信息。
项目事件由实现了 ItemSelectable
接口的组件触发。通常,ItemSelectable
组件会维护一个或多个项目的开/关状态。触发项目事件的 Swing 组件包括按钮,如复选框、复选菜单项、切换按钮等,以及组合框。
下面是从 ComponentEventDemo.java
中提取的一些项目事件处理代码:
// 在初始化时 checkbox.addItemListener(this); ... public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { label.setVisible(true); ... } else { label.setVisible(false); } }
由于 ItemListener
只有一个方法,所以没有相应的适配器类。
方法 | 目的 |
---|---|
itemStateChanged(ItemEvent) | 在被监听组件的状态发生变化后调用。 |
方法 | 目的 |
---|---|
Object getItem() | 返回与状态改变的项目相关联的组件特定对象。通常这是一个包含所选项目文本的 String 。 |
ItemSelectable getItemSelectable() | 返回触发项目事件的组件。你可以使用它代替 getSource 方法。 |
int getStateChange() | 返回项目的新状态。ItemEvent 类定义了两个状态: SELECTED 和 DESELECTED 。 |
以下表格列出了一些使用项目监听器的示例。
示例 | 描述位置 | 备注 |
---|---|---|
ComponentEventDemo |
本节和如何编写组件监听器 | 监听复选框上的项目事件,确定标签是否可见。 |
CheckBoxDemo |
如何使用复选框 | 四个复选框共享一个项目监听器,使用getItemSelected 确定哪个复选框触发了事件。 |
MenuDemo |
如何使用菜单 | 监听复选框菜单项上的项目事件。 |
MenuDemo |
如何使用滚动窗格 | 监听切换按钮上的项目事件。 |