Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
Container events are fired by a Container
just after a component is added to or removed from the container. These events are for notification only — no container listener need be present for components to be successfully added or removed.
The following example demonstrates container events. By clicking Add a button or Remove a button, you can add buttons to or remove them from a panel at the bottom of the window. Each time a button is added to or removed from the panel, the panel fires a container event, and the panel's container listener is notified. The listener displays descriptive messages in the text area at the top of the window.
You can find the demo's code in
ContainerEventDemo.java
. Here is the demo's container event handling code:
public class ContainerEventDemo ... implements ContainerListener ... { ...//where initialization occurs: buttonPanel = new JPanel(new GridLayout(1,1)); buttonPanel.addContainerListener(this); ... public void componentAdded(ContainerEvent e) { displayMessage(" added to ", e); } public void componentRemoved(ContainerEvent e) { displayMessage(" removed from ", e); } void displayMessage(String action, ContainerEvent e) { display.append(((JButton)e.getChild()).getText() + " was" + action + e.getContainer().getClass().getName() + newline); } ... }
The ContainerListener Interface
The corresponding adapter class is
ContainerAdapter
.
方法 | 目的 |
---|---|
componentAdded(ContainerEvent) | Called just after a component is added to the listened-to container. |
componentRemoved(ContainerEvent) | Called just after a component is removed from the listened-to container. |
方法 | 目的 |
---|---|
Component getChild() | Returns the component whose addition or removal triggered this event. |
Container getContainer() | Returns the container that fired this event. You can use this instead of the getSource method. |
The following table lists the examples that use container listeners.
例子 | Where Described | Notes |
---|---|---|
ContainerEventDemo |
This section | Reports all container events that occur on a single panel to demonstrate the circumstances under which container events are fired. |