Start of Tutorial > Start of Trail > Start of Lesson | Search |
Container events are fired by aContainer
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 applet demonstrates container events. By clicking Add a button or Remove a button, you can add components to or remove them from a panel at the bottom of the applet. Each time a component 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 applet.
This is a picture of the applet's GUI. To run the applet, click the picture. The applet will appear in a new browser window.
Try this:
- Click the button labeled Add a button.
You'll see a button appear near the bottom of the applet. The container listener (in this example, an instance ofContainerEventDemo
) reacts to the resulting component-added event by displaying "Button #1 was added to java.awt.Panel" at the top of the applet.- Click the button labeled Remove a button.
This removes the most recently added button from the panel, causing the container listener to receive a component-removed event.You can find the applet's code in
ContainerEventDemo.java
. Here is the applet's container event handling code:public class ContainerEventDemo ... implements ContainerListener ... { ...//where initialization occurs: buttonPanel = new JPanel(); 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); } ... }
TheContainerListener
interface and its corresponding adapter class,ContainerAdapter
, contain two methods:Each container event method has a single parameter: a
void componentAdded(ContainerEvent)
- Called just after a component is added to the listened-to container.
void componentRemoved(ContainerEvent)
- Called just after a component is removed from the listened-to container.
ContainerEvent
object. TheContainerEvent
class defines two useful methods:
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.
Example 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.
Start of Tutorial > Start of Trail > Start of Lesson | Search |