这些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 |
本节 | 报告在单个面板上发生的所有容器事件,以演示容器事件触发的情况。 |