| |||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public class Container extends Component
A generic Abstract Window Toolkit(AWT) container object is a component that can contain other AWT components.
Components added to a container are tracked in a list. The order of the list will define the components' front-to-back stacking order within the container. If no index is specified when adding a component to a container, it will be added to the end of the list (and hence to the bottom of the stacking order).
Note: For details on the focus subsystem, see How to Use the Focus Subsystem, a section in The Java Tutorial, and the Focus Specification for more information.
Nested Class Summary | |
---|---|
protected class |
Inner class of Container used to provide default support for accessibility. |
Nested classes/interfaces inherited from class java.awt.Component |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
Field Summary |
---|
Fields inherited from class java.awt.Component |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
Constructor Summary | |
---|---|
Constructs a new Container. |
Method Summary | |
---|---|
Component |
Appends the specified component to the end of this container. |
Component |
Adds the specified component to this container at the given position. |
void |
Adds the specified component to the end of this container. |
void |
Adds the specified component to this container with the specified constraints at the specified index. |
Component |
Adds the specified component to this container. |
void |
Adds the specified container listener to receive container events from this container. |
protected void |
Adds the specified component to this container at the specified index. |
void |
Makes this Container displayable by connecting it to a native screen resource. |
void |
Adds a PropertyChangeListener to the listener list. |
void |
addPropertyChangeListener(String propertyName, PropertyChangeListener listener) Adds a PropertyChangeListener to the listener list for a specific property. |
void |
Sets the ComponentOrientation property of this container
and all components contained within it.
|
boolean |
areFocusTraversalKeysSet(int id) Returns whether the Set of focus traversal keys for the given focus traversal operation has been explicitly defined for this Container. |
int |
|
void |
|
void |
doLayout() Causes this container to lay out its components. |
Component |
findComponentAt(int x, int y) Locates the visible child component that contains the specified position. |
Component |
Locates the visible child component that contains the specified point. |
float |
Returns the alignment along the x axis. |
float |
Returns the alignment along the y axis. |
Component |
getComponent(int n) Gets the nth component in this container. |
Component |
getComponentAt(int x, int y) Locates the component that contains the x,y position. |
Component |
Gets the component that contains the specified point. |
int |
Gets the number of components in this panel. |
Component[] |
Gets all the components in this container. |
int |
getComponentZOrder(Component comp) Returns the z-order index of the component inside the container. |
ContainerListener[] |
Returns an array of all the container listeners registered on this container. |
Set |
getFocusTraversalKeys(int id) Returns the Set of focus traversal keys for a given traversal operation for this Container. |
FocusTraversalPolicy |
Returns the focus traversal policy that will manage keyboard traversal of this Container's children, or null if this Container is not a focus cycle root. |
Insets |
Determines the insets of this container, which indicate the size of the container's border. |
LayoutManager |
Gets the layout manager for this container. |
EventListener[] |
getListeners(Class listenerType) Returns an array of all the objects currently registered as FooListener s
upon this Container .
|
Dimension |
Returns the maximum size of this container. |
Dimension |
Returns the minimum size of this container. |
Point |
getMousePosition(boolean allowChildren) Returns the position of the mouse pointer in this Container 's
coordinate space if the Container is under the mouse pointer,
otherwise returns null .
|
Dimension |
Returns the preferred size of this container. |
Insets |
insets() |
void |
Invalidates the container. |
boolean |
Checks if the component is contained in the component hierarchy of this container. |
boolean |
Returns whether this Container is the root of a focus traversal cycle. |
boolean |
isFocusCycleRoot(Container container) Returns whether the specified Container is the focus cycle root of this Container's focus traversal cycle. |
boolean |
Returns whether this container provides focus traversal policy. |
boolean |
Returns whether the focus traversal policy has been explicitly set for this Container. |
void |
layout() |
void |
list(PrintStream out, int indent) Prints a listing of this container to the specified output stream. |
void |
list(PrintWriter out, int indent) Prints out a list, starting at the specified indentation, to the specified print writer. |
Component |
locate(int x, int y) |
Dimension |
|
void |
Paints the container. |
void |
Paints each of the components in this container. |
protected String |
Returns a string representing the state of this Container .
|
Dimension |
|
void |
Prints the container. |
void |
Prints each of the components in this container. |
protected void |
Processes container events occurring on this container by dispatching them to any registered ContainerListener objects. |
protected void |
Processes events on this container. |
void |
Removes the specified component from this container. |
void |
remove(int index) Removes the component, specified by index ,
from this container.
|
void |
Removes all the components from this container. |
void |
Removes the specified container listener so it no longer receives container events from this container. |
void |
Makes this Container undisplayable by removing its connection to its native screen resource. |
void |
setComponentZOrder(Component comp, int index) Moves the specified component to the specified z-order index in the container. |
void |
setFocusCycleRoot(boolean focusCycleRoot) Sets whether this Container is the root of a focus traversal cycle. |
void |
setFocusTraversalKeys(int id, Set keystrokes) Sets the focus traversal keys for a given traversal operation for this Container. |
void |
Sets the focus traversal policy that will manage keyboard traversal of this Container's children, if this Container is a focus cycle root. |
void |
setFocusTraversalPolicyProvider(boolean provider) Sets whether this container will be used to provide focus traversal policy. |
void |
Sets the font of this container. |
void |
setLayout(LayoutManager mgr) Sets the layout manager for this container. |
void |
Transfers the focus to the previous component, as though this Component were the focus owner. |
void |
Transfers the focus down one focus traversal cycle. |
void |
Updates the container. |
void |
validate() Validates this container and all of its subcomponents. |
protected void |
Recursively descends the container tree and recomputes the layout for any subtrees marked as needing it (those marked as invalid). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Container()
Method Detail |
---|
public Component add(Component comp)
Note: If a component has been added to a container that
has been displayed, validate
must be
called on that container to display the new component.
If multiple components are being added, you can improve
efficiency by calling validate
only once,
after all the components have been added.
comp
- the component to be addedpublic Component add(Component comp, int index)
Note: If a component has been added to a container that
has been displayed, validate
must be
called on that container to display the new component.
If multiple components are being added, you can improve
efficiency by calling validate
only once,
after all the components have been added.
comp
- the component to be addedindex
- the position at which to insert the component,
or -1
to append the component to the endcomp
public void add(Component comp, Object constraints)
Note: If a component has been added to a container that
has been displayed, validate
must be
called on that container to display the new component.
If multiple components are being added, you can improve
efficiency by calling validate
only once,
after all the components have been added.
comp
- the component to be addedconstraints
- an object expressing
layout contraints for this componentpublic void add(Component comp, Object constraints, int index)
Note: If a component has been added to a container that
has been displayed, validate
must be
called on that container to display the new component.
If multiple components are being added, you can improve
efficiency by calling validate
only once,
after all the components have been added.
comp
- the component to be addedconstraints
- an object expressing layout contraints for thisindex
- the position in the container's list at which to insert
the component; -1
means insert at the end
componentpublic Component add(String name, Component comp)
This method is obsolete as of 1.1. Please use the
method add(Component, Object)
instead.
name
comp
public synchronized void addContainerListener(ContainerListener l)
Refer to AWT Threading Issues for details on AWT's threading model.
l
- the container listenerprotected void addImpl(Component comp, Object constraints, int index)
addLayoutComponent
method.
The constraints are
defined by the particular layout manager being used. For
example, the BorderLayout
class defines five
constraints: BorderLayout.NORTH
,
BorderLayout.SOUTH
, BorderLayout.EAST
,
BorderLayout.WEST
, and BorderLayout.CENTER
.
The GridBagLayout
class requires a
GridBagConstraints
object. Failure to pass
the correct type of constraints object results in an
IllegalArgumentException
.
If the current layout manager implements {@code LayoutManager2}, then {@link LayoutManager2#addLayoutComponent(Component,Object)} is invoked on it. If the current layout manager does not implement {@code LayoutManager2}, and constraints is a {@code String}, then {@link LayoutManager#addLayoutComponent(String,Component)} is invoked on it.
If the component is not an ancestor of this container and has a non-null parent, it is removed from its current parent before it is added to this container.
This is the method to override if a program needs to track every add request to a container as all other add methods defer to this one. An overriding method should usually include a call to the superclass's version of the method:
super.addImpl(comp, constraints, index)
comp
- the component to be addedconstraints
- an object expressing layout constraints
for this componentindex
- the position in the container's list at which to
insert the component, where -1
means append to the endpublic void addNotify()
addNotify
in class Component
public void addPropertyChangeListener(PropertyChangeListener listener)
If listener is null, no exception is thrown and no action is performed.
addPropertyChangeListener
in class Component
listener
- the PropertyChangeListener to be addedpublic void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
If listener is null, no exception is thrown and no action is performed.
addPropertyChangeListener
in class Component
propertyName
- one of the property names listed abovelistener
- the PropertyChangeListener to be addedpublic void applyComponentOrientation(ComponentOrientation o)
ComponentOrientation
property of this container
and all components contained within it.
applyComponentOrientation
in class Component
o
- the new component orientation of this container and
the components contained within it.public boolean areFocusTraversalKeysSet(int id)
false
, this Container is inheriting the
Set from an ancestor, or from the current KeyboardFocusManager.
areFocusTraversalKeysSet
in class Component
id
- one of KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, or
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYStrue
if the the Set of focus traversal keys for the
given focus traversal operation has been explicitly defined for
this Component; false
otherwise.public int countComponents()
public void deliverEvent(Event e)
deliverEvent
in class Component
e
public void doLayout()
validate
method instead.
doLayout
in class Component
public Component findComponentAt(int x, int y)
The findComponentAt method is different from getComponentAt in that getComponentAt only searches the Container's immediate children; if the containing component is a Container, findComponentAt will search that child to find a nested component.
x
- the x coordinatey
- the y coordinatepublic Component findComponentAt(Point p)
The findComponentAt method is different from getComponentAt in that getComponentAt only searches the Container's immediate children; if the containing component is a Container, findComponentAt will search that child to find a nested component.
p
- the point.public float getAlignmentX()
getAlignmentX
in class Component
public float getAlignmentY()
getAlignmentY
in class Component
public Component getComponent(int n)
n
- the index of the component to get.public Component getComponentAt(int x, int y)
getComponentAt
in class Component
x
- the x coordinatey
- the y coordinatepublic Component getComponentAt(Point p)
getComponentAt
in class Component
p
- the point.null
if the component does
not contain the point.public int getComponentCount()
public Component[] getComponents()
public int getComponentZOrder(Component comp)
comp
- the component being queriednull
or doesn't belong to the containerpublic synchronized ContainerListener[] getContainerListeners()
ContainerListener
s
or an empty array if no container
listeners are currently registeredpublic Set getFocusTraversalKeys(int id)
setFocusTraversalKeys
for a full description of each key.)
If a Set of traversal keys has not been explicitly defined for this Container, then this Container's parent's Set is returned. If no Set has been explicitly defined for any of this Container's ancestors, then the current KeyboardFocusManager's default Set is returned.
getFocusTraversalKeys
in class Component
id
- one of KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, or
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYSpublic FocusTraversalPolicy getFocusTraversalPolicy()
public Insets getInsets()
A Frame
object, for example, has a top inset that
corresponds to the height of the frame's title bar.
public LayoutManager getLayout()
public EventListener[] getListeners(Class listenerType)
FooListener
s
upon this Container
.
FooListener
s are registered using the
addFooListener
method.
You can specify the listenerType
argument
with a class literal, such as
FooListener.class
.
For example, you can query a
Container
c
for its container listeners with the following code:
ContainerListener[] cls = (ContainerListener[])(c.getListeners(ContainerListener.class));If no such listeners exist, this method returns an empty array.
getListeners
in class Component
listenerType
- the type of listeners requested; this parameter
should specify an interface that descends from
java.util.EventListener
FooListener
s on this container,
or an empty array if no such listeners have been addedpublic Dimension getMaximumSize()
Note: some implementations may cache the value returned from the {@code LayoutManager2}. Implementations that cache need not invoke {@code maximumLayoutSize} on the {@code LayoutManager2} every time this method is invoked, rather the {@code LayoutManager2} will only be queried after the {@code Container} becomes invalid.
getMaximumSize
in class Component
Dimension
that represents
the maximum size of this container.public Dimension getMinimumSize()
Note: some implementations may cache the value returned from the {@code LayoutManager}. Implementations that cache need not invoke {@code minimumLayoutSize} on the {@code LayoutManager} every time this method is invoked, rather the {@code LayoutManager} will only be queried after the {@code Container} becomes invalid.
getMinimumSize
in class Component
Dimension
that represents
the minimum size of this container.public Point getMousePosition(boolean allowChildren) throws HeadlessException
Container
's
coordinate space if the Container
is under the mouse pointer,
otherwise returns null
.
This method is similar to {@link Component#getMousePosition()} with the exception
that it can take the Container
's children into account.
If allowChildren
is false
, this method will return
a non-null value only if the mouse pointer is above the Container
directly, not above the part obscured by children.
If allowChildren
is true
, this method returns
a non-null value if the mouse pointer is above Container
or any
of its descendants.
allowChildren
- true if children should be taken into accountComponent
, or nullHeadlessException
- if GraphicsEnvironment.isHeadless() returns truepublic Dimension getPreferredSize()
Note: some implementations may cache the value returned from the {@code LayoutManager}. Implementations that cache need not invoke {@code preferredLayoutSize} on the {@code LayoutManager} every time this method is invoked, rather the {@code LayoutManager} will only be queried after the {@code Container} becomes invalid.
getPreferredSize
in class Component
Dimension
that represents
the preferred size of this container.public Insets insets()
public void invalidate()
If the {@code LayoutManager} installed on this container is an instance of {@code LayoutManager2}, then {@link LayoutManager2#invalidateLayout(Container)} is invoked on it supplying this {@code Container} as the argument.
invalidate
in class Component
public boolean isAncestorOf(Component c)
c
- the componenttrue
if it is an ancestor;
false
otherwise.public boolean isFocusCycleRoot()
public boolean isFocusCycleRoot(Container container)
true
for both such
Containers in this case.
isFocusCycleRoot
in class Component
container
- the Container to be testedtrue
if the specified Container is a focus-cycle-
root of this Container; false
otherwisepublic final boolean isFocusTraversalPolicyProvider()
true
then when
keyboard focus manager searches container hierarchy for focus
traversal policy and encounters this container before any other
container with this property as true or focus cycle roots then
its focus traversal policy will be used instead of focus cycle
root's policy.
true
if this container provides focus traversal
policy, false
otherwisepublic boolean isFocusTraversalPolicySet()
false
, this
Container will inherit its focus traversal policy from an ancestor.
true
if the focus traversal policy has been
explicitly set for this Container; false
otherwise.public void layout()
layout
in class Component
public void list(PrintStream out, int indent)
The immediate children of the container are printed with
an indentation of indent+1
. The children
of those children are printed at indent+2
and so on.
list
in class Component
out
- a print streamindent
- the number of spaces to indentpublic void list(PrintWriter out, int indent)
The immediate children of the container are printed with
an indentation of indent+1
. The children
of those children are printed at indent+2
and so on.
list
in class Component
out
- a print writerindent
- the number of spaces to indentpublic Component locate(int x, int y)
locate
in class Component
x
y
public Dimension minimumSize()
minimumSize
in class Component
public void paint(Graphics g)
paint
in class Component
g
- the specified Graphics windowpublic void paintComponents(Graphics g)
g
- the graphics context.protected String paramString()
Container
.
This method is intended to be used only for debugging purposes, and the
content and format of the returned string may vary between
implementations. The returned string may be empty but may not be
null
.
paramString
in class Component
public Dimension preferredSize()
preferredSize
in class Component
public void print(Graphics g)
print
in class Component
g
- the specified Graphics windowpublic void printComponents(Graphics g)
g
- the graphics context.protected void processContainerEvent(ContainerEvent e)
addContainerListener
enableEvents
Note that if the event parameter is null
the behavior is unspecified and may result in an
exception.
e
- the container eventprotected void processEvent(AWTEvent e)
ContainerEvent
, it invokes the
processContainerEvent
method, else it invokes
its superclass's processEvent
.
Note that if the event parameter is null
the behavior is unspecified and may result in an
exception.
processEvent
in class Component
e
- the eventpublic void remove(Component comp)
removeLayoutComponent
method.
Note: If a component has been removed from a container that had been displayed, {@link #validate} must be called on that container to reflect changes. If multiple components are being removed, you can improve efficiency by calling {@link #validate} only once, after all the components have been removed.
comp
- the component to be removedpublic void remove(int index)
index
,
from this container.
This method also notifies the layout manager to remove the
component from this container's layout via the
removeLayoutComponent
method.
Note: If a component has been removed from a container that had been displayed, {@link #validate} must be called on that container to reflect changes. If multiple components are being removed, you can improve efficiency by calling {@link #validate} only once, after all the components have been removed.
index
- the index of the component to be removedpublic void removeAll()
removeLayoutComponent
method.
public synchronized void removeContainerListener(ContainerListener l)
Refer to AWT Threading Issues for details on AWT's threading model.
l
- the container listenerpublic void removeNotify()
removeNotify
in class Component
public void setComponentZOrder(Component comp, int index)
If the component is a child of some other container, it is
removed from that container before being added to this container.
The important difference between this method and
java.awt.Container.add(Component, int)
is that this method
doesn't call removeNotify
on the component while
removing it from its previous container unless necessary and when
allowed by the underlying native windowing system. This way, if the
component has the keyboard focus, it maintains the focus when
moved to the new position.
This property is guaranteed to apply only to lightweight
non-Container
components.
Note: Not all platforms support changing the z-order of
heavyweight components from one container into another without
the call to removeNotify
. There is no way to detect
whether a platform supports this, so developers shouldn't make
any assumptions.
comp
- the component to be movedindex
- the position in the container's list to
insert the component, where getComponentCount()
appends to the endpublic void setFocusCycleRoot(boolean focusCycleRoot)
The alternative way to specify the traversal order of this Container's children is to make this Container a focus traversal policy provider.
focusCycleRoot
- indicates whether this Container is the root of a
focus traversal cyclepublic void setFocusTraversalKeys(int id, Set keystrokes)
The default values for a Container's focus traversal keys are implementation-dependent. Sun recommends that all implementations for a particular native platform use the same default values. The recommendations for Windows and Unix are listed below. These recommendations are used in the Sun AWT implementations.
Identifier | Meaning | Default | |
---|---|---|---|
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS | Normal forward keyboard traversal | TAB on KEY_PRESSED, CTRL-TAB on KEY_PRESSED | |
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS | Normal reverse keyboard traversal | SHIFT-TAB on KEY_PRESSED, CTRL-SHIFT-TAB on KEY_PRESSED | |
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS | Go up one focus traversal cycle | none | |
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS | Go down one focus traversal cycle | none |
Using the AWTKeyStroke API, client code can specify on which of two specific KeyEvents, KEY_PRESSED or KEY_RELEASED, the focus traversal operation will occur. Regardless of which KeyEvent is specified, however, all KeyEvents related to the focus traversal key, including the associated KEY_TYPED event, will be consumed, and will not be dispatched to any Container. It is a runtime error to specify a KEY_TYPED event as mapping to a focus traversal operation, or to map the same event to multiple default focus traversal operations.
If a value of null is specified for the Set, this Container inherits the Set from its parent. If all ancestors of this Container have null specified for the Set, then the current KeyboardFocusManager's default Set is used.
setFocusTraversalKeys
in class Component
id
- one of KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, or
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYSkeystrokes
- the Set of AWTKeyStroke for the specified operationpublic void setFocusTraversalPolicy(FocusTraversalPolicy policy)
If this Container is not a focus cycle root, the policy will be remembered, but will not be used or inherited by this or any other Containers until this Container is made a focus cycle root.
policy
- the new focus traversal policy for this Containerpublic final void setFocusTraversalPolicyProvider(boolean provider)
true
will be used to acquire focus traversal policy
instead of closest focus cycle root ancestor.
provider
- indicates whether this container will be used to
provide focus traversal policypublic void setFont(Font f)
setFont
in class Component
f
- The font to become this container's font.public void setLayout(LayoutManager mgr)
mgr
- the specified layout managerpublic void transferFocusBackward()
transferFocusBackward
in class Component
public void transferFocusDownCycle()
public void update(Graphics g)
update
in class Component
g
- the specified Graphics windowpublic void validate()
The validate
method is used to cause a container
to lay out its subcomponents again. It should be invoked when
this container's subcomponents are modified (added to or
removed from the container, or layout-related information
changed) after the container has been displayed.
If this {@code Container} is not valid, this method invokes the {@code validateTree} method and marks this {@code Container} as valid. Otherwise, no action is performed.
validate
in class Component
protected void validateTree()
validate
.
| |||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |