Popup (Java SE 26 & JDK 26)
Description: declaration: module: java.desktop, package: javax.swing, class: Popup
Keywords: javax.swing.Popup class

# Class Popup

java.lang.Object
javax.swing.Popup

public 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`.

Since:
  1.4
See Also:
  - `PopupFactory`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `Popup()`
  Creates a `Popup`.
  `protected`
  `Popup(Component owner, Component contents, int x, int y)`
  Creates a `Popup` for the Component `owner` containing the Component `contents`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `hide()`
  Hides and disposes of the `Popup`.
  `void`
  `show()`
  Makes the `Popup` visible.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### Popup

    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 parameters, the `Popup` may not display at `x` and `y`.
    Parameters:
      `owner` - Component mouse coordinates are relative to, may be null
      `contents` - Contents of the Popup
      `x` - Initial x screen coordinate
      `y` - Initial y screen coordinate
    Throws:
      `IllegalArgumentException` - if contents is null

  - ### Popup

    protected Popup()
    Creates a `Popup`. This is provided for subclasses.

- ## Method Details

  - ### show

    public void show()
    Makes the `Popup` visible. If the `Popup` is currently visible, this has no effect.

  - ### hide

    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.