Popuppublic class Popup extends Object Popups are used to display a Component to the user, typically
on top of all the other Component s in a particular containment
hierarchy. Popup s have a very small life cycle. Once you
have obtained a Popup , and hidden it (invoked the
hide method), you should no longer
invoke any methods on it. This allows the PopupFactory to cache
Popup s for later use.
The general contract is that if you need to change the size of the
Component , or location of the Popup , you should
obtain a new Popup .
Popup does not descend from Component , rather
implementations of Popup are responsible for creating
and maintaining their own Component s to render the
requested Component to the user.
You typically do not explicitly create an instance of Popup ,
instead obtain one from a PopupFactory . |
Fields Summary |
---|
private Component | componentThe Component representing the Popup. |
Constructors Summary |
---|
protected Popup(Component owner, Component contents, int x, int y)Creates a Popup for the Component owner
containing the Component contents . owner
is used to determine which Window the new
Popup will parent the Component the
Popup creates to.
A null owner implies there is no valid parent.
x and
y specify the preferred initial location to place
the Popup at. Based on screen size, or other paramaters,
the Popup may not display at x and
y .
this();
if (contents == null) {
throw new IllegalArgumentException("Contents must be non-null");
}
reset(owner, contents, x, y);
| protected Popup()Creates a Popup . This is provided for subclasses.
|
Methods Summary |
---|
java.awt.Component | createComponent(java.awt.Component owner)Creates the Component to use as the parent of the Popup .
The default implementation creates a Window , subclasses
should override.
if (GraphicsEnvironment.isHeadless()) {
// Generally not useful, bail.
return null;
}
return new HeavyWeightWindow(getParentWindow(owner));
| void | dispose()Frees any resources the Popup may be holding onto.
Component component = getComponent();
if (component instanceof JWindow) {
((Window)component).dispose();
component = null;
}
| java.awt.Component | getComponent()Returns the Component returned from
createComponent that will hold the Popup .
return component;
| private java.awt.Window | getParentWindow(java.awt.Component owner)Returns the Window to use as the parent of the
Window created for the Popup . This creates
a new Frame each time it is invoked. Subclasses that wish
to support a different Window parent should override
this.
Window window = null;
if (owner instanceof Window) {
window = (Window)owner;
}
else if (owner != null) {
window = SwingUtilities.getWindowAncestor(owner);
}
if (window == null) {
window = new DefaultFrame();
}
return window;
| public void | hide()Hides and disposes of the Popup . Once a Popup
has been disposed you should no longer invoke methods on it. A
dispose d Popup may be reclaimed and later used
based on the PopupFactory . As such, if you invoke methods
on a disposed Popup , indeterminate
behavior will result.
Component component = getComponent();
if (component instanceof JWindow) {
component.hide();
((JWindow)component).getContentPane().removeAll();
}
dispose();
| void | pack()Causes the Popup to be sized to fit the preferred size
of the Component it contains.
Component component = getComponent();
if (component instanceof Window) {
((Window)component).pack();
}
| void | reset(java.awt.Component owner, java.awt.Component contents, int ownerX, int ownerY)Resets the Popup to an initial state.
if (getComponent() == null) {
component = createComponent(owner);
}
Component c = getComponent();
if (c instanceof JWindow) {
JWindow component = (JWindow)getComponent();
component.setLocation(ownerX, ownerY);
component.getContentPane().add(contents, BorderLayout.CENTER);
contents.invalidate();
if(component.isVisible()) {
// Do not call pack() if window is not visible to
// avoid early native peer creation
pack();
}
}
| public void | show()Makes the Popup visible. If the Popup is
currently visible, this has no effect.
Component component = getComponent();
if (component != null) {
component.show();
}
|
|