这些Java教程是针对JDK 8编写的。本页面描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
请参阅Java语言变更了解Java SE 9及后续版本中的更新语言特性的摘要。
请参阅JDK发布说明了解有关所有JDK版本的新功能、增强功能以及已删除或已弃用选项的信息。
容器事件在组件被添加到容器或从容器中移除后由Container触发。这些事件仅用于通知,组件成功添加或移除无需存在容器监听器。
下面的示例演示了容器事件。通过点击添加按钮或移除按钮,您可以向窗口底部的面板添加或移除按钮。每次按钮被添加到面板或从面板移除时,面板会触发一个容器事件,并通知面板的容器监听器。监听器会在窗口顶部的文本区域中显示描述性消息。
您可以在这里找到演示代码的代码。下面是演示的容器事件处理代码:
public class ContainerEventDemo ... implements ContainerListener ... {
...//where initialization occurs:
buttonPanel = new JPanel(new GridLayout(1,1));
buttonPanel.addContainerListener(this);
...
public void componentAdded(ContainerEvent e) {
displayMessage("添加到", e);
}
public void componentRemoved(ContainerEvent e) {
displayMessage("从", e);
}
void displayMessage(String action, ContainerEvent e) {
display.append(((JButton)e.getChild()).getText()
+ "被"
+ action
+ e.getContainer().getClass().getName()
+ newline);
}
...
}
相应的适配器类是ContainerAdapter。
| 方法 | 目的 |
|---|---|
| componentAdded(ContainerEvent) | 在组件添加到监听容器后调用。 |
| componentRemoved(ContainerEvent) | 在组件从监听容器中移除后调用。 |
| 方法 | 目的 |
|---|---|
| Component getChild() | 返回触发此事件的添加或移除的组件。 |
| Container getContainer() | 返回触发此事件的容器。您可以使用这个方法代替getSource方法。 |
以下表格列出了使用容器监听器的示例。
| 示例 | 描述位置 | 备注 |
|---|---|---|
ContainerEventDemo |
本节 | 报告在单个面板上发生的所有容器事件,以演示容器事件触发的情况。 |