public class Dialog extends Window
A Dialog is a top-level window with a title and a border that is typically used to take some form of input from the user. The size of the dialog includes any area designated for the border. The dimensions of the border area can be obtained using the getInsets
method, however, since these dimensions are platform-dependent, a valid insets value cannot be obtained until the dialog is made displayable by either calling pack
or show
. Since the border area is included in the overall size of the dialog, the border effectively obscures a portion of the dialog, constraining the area available for rendering and/or displaying subcomponents to the rectangle which has an upper-left corner location of (insets.left, insets.top)
, and has a size of width - (insets.left + insets.right)
by height - (insets.top + insets.bottom)
.
The default layout for a dialog is BorderLayout
.
A dialog may have its native decorations (i.e. Frame & Titlebar) turned off with setUndecorated
. This can only be done while the dialog is not displayable
.
A dialog may have another window as its owner when it's constructed. When the owner window of a visible dialog is minimized, the dialog will automatically be hidden from the user. When the owner window is subsequently restored, the dialog is made visible to the user again.
In a multi-screen environment, you can create a Dialog
on a different screen device than its owner. See Frame
for more information.
A dialog can be either modeless (the default) or modal. A modal dialog is one which blocks input to some other top-level windows in the application, except for any windows created with the dialog as their owner. See AWT Modality specification for details.
Dialogs are capable of generating the following WindowEvents
: WindowOpened
, WindowClosing
, WindowClosed
, WindowActivated
, WindowDeactivated
, WindowGainedFocus
, WindowLostFocus
.
WindowEvent
, Window.addWindowListener(java.awt.event.WindowListener)
, Serialized FormModifier and Type | Class and Description |
---|---|
protected class |
Dialog.AccessibleAWTDialog This class implements accessibility support for the |
static class |
Dialog.ModalExclusionType Any top-level window can be marked not to be blocked by modal dialogs. |
static class |
Dialog.ModalityType Modal dialogs block all input to some top-level windows. |
Window.AccessibleAWTWindow, Window.Type
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
public static final Dialog.ModalityType DEFAULT_MODALITY_TYPE
Default modality type for modal dialogs. The default modality type is APPLICATION_MODAL
. Calling the oldstyle setModal(true)
is equal to setModalityType(DEFAULT_MODALITY_TYPE)
.
Dialog.ModalityType
, setModal(boolean)
public Dialog(Frame owner)
Constructs an initially invisible, modeless Dialog
with the specified owner Frame
and an empty title.
owner
- the owner of the dialog or null
if this dialog has no ownerIllegalArgumentException
- if the owner
's GraphicsConfiguration
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
GraphicsEnvironment.isHeadless()
, Component.setSize(int, int)
, Component.setVisible(boolean)
public Dialog(Frame owner, boolean modal)
Constructs an initially invisible Dialog
with the specified owner Frame
and modality and an empty title.
owner
- the owner of the dialog or null
if this dialog has no ownermodal
- specifies whether dialog blocks user input to other top-level windows when shown. If false
, the dialog is MODELESS
; if true
, the modality type property is set to DEFAULT_MODALITY_TYPE
IllegalArgumentException
- if the owner
's GraphicsConfiguration
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
Dialog.ModalityType
, Dialog.ModalityType.MODELESS
, DEFAULT_MODALITY_TYPE
, setModal(boolean)
, setModalityType(java.awt.Dialog.ModalityType)
, GraphicsEnvironment.isHeadless()
public Dialog(Frame owner, String title)
Constructs an initially invisible, modeless Dialog
with the specified owner Frame
and title.
owner
- the owner of the dialog or null
if this dialog has no ownertitle
- the title of the dialog or null
if this dialog has no titleIllegalArgumentException
- if the owner
's GraphicsConfiguration
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
GraphicsEnvironment.isHeadless()
, Component.setSize(int, int)
, Component.setVisible(boolean)
public Dialog(Frame owner, String title, boolean modal)
Constructs an initially invisible Dialog
with the specified owner Frame
, title and modality.
owner
- the owner of the dialog or null
if this dialog has no ownertitle
- the title of the dialog or null
if this dialog has no titlemodal
- specifies whether dialog blocks user input to other top-level windows when shown. If false
, the dialog is MODELESS
; if true
, the modality type property is set to DEFAULT_MODALITY_TYPE
IllegalArgumentException
- if the owner
's GraphicsConfiguration
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
Dialog.ModalityType
, Dialog.ModalityType.MODELESS
, DEFAULT_MODALITY_TYPE
, setModal(boolean)
, setModalityType(java.awt.Dialog.ModalityType)
, GraphicsEnvironment.isHeadless()
, Component.setSize(int, int)
, Component.setVisible(boolean)
public Dialog(Frame owner, String title, boolean modal, GraphicsConfiguration gc)
Constructs an initially invisible Dialog
with the specified owner Frame
, title, modality, and GraphicsConfiguration
.
owner
- the owner of the dialog or null
if this dialog has no ownertitle
- the title of the dialog or null
if this dialog has no titlemodal
- specifies whether dialog blocks user input to other top-level windows when shown. If false
, the dialog is MODELESS
; if true
, the modality type property is set to DEFAULT_MODALITY_TYPE
gc
- the GraphicsConfiguration
of the target screen device; if null
, the default system GraphicsConfiguration
is assumedIllegalArgumentException
- if gc
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
Dialog.ModalityType
, Dialog.ModalityType.MODELESS
, DEFAULT_MODALITY_TYPE
, setModal(boolean)
, setModalityType(java.awt.Dialog.ModalityType)
, GraphicsEnvironment.isHeadless()
, Component.setSize(int, int)
, Component.setVisible(boolean)
public Dialog(Dialog owner)
Constructs an initially invisible, modeless Dialog
with the specified owner Dialog
and an empty title.
owner
- the owner of the dialog or null
if this dialog has no ownerIllegalArgumentException
- if the owner
's GraphicsConfiguration
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
GraphicsEnvironment.isHeadless()
public Dialog(Dialog owner, String title)
Constructs an initially invisible, modeless Dialog
with the specified owner Dialog
and title.
owner
- the owner of the dialog or null
if this has no ownertitle
- the title of the dialog or null
if this dialog has no titleIllegalArgumentException
- if the owner
's GraphicsConfiguration
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
GraphicsEnvironment.isHeadless()
public Dialog(Dialog owner, String title, boolean modal)
Constructs an initially invisible Dialog
with the specified owner Dialog
, title, and modality.
owner
- the owner of the dialog or null
if this dialog has no ownertitle
- the title of the dialog or null
if this dialog has no titlemodal
- specifies whether dialog blocks user input to other top-level windows when shown. If false
, the dialog is MODELESS
; if true
, the modality type property is set to DEFAULT_MODALITY_TYPE
IllegalArgumentException
- if the owner
's GraphicsConfiguration
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
Dialog.ModalityType
, Dialog.ModalityType.MODELESS
, DEFAULT_MODALITY_TYPE
, setModal(boolean)
, setModalityType(java.awt.Dialog.ModalityType)
, GraphicsEnvironment.isHeadless()
public Dialog(Dialog owner, String title, boolean modal, GraphicsConfiguration gc)
Constructs an initially invisible Dialog
with the specified owner Dialog
, title, modality and GraphicsConfiguration
.
owner
- the owner of the dialog or null
if this dialog has no ownertitle
- the title of the dialog or null
if this dialog has no titlemodal
- specifies whether dialog blocks user input to other top-level windows when shown. If false
, the dialog is MODELESS
; if true
, the modality type property is set to DEFAULT_MODALITY_TYPE
gc
- the GraphicsConfiguration
of the target screen device; if null
, the default system GraphicsConfiguration
is assumedIllegalArgumentException
- if gc
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
Dialog.ModalityType
, Dialog.ModalityType.MODELESS
, DEFAULT_MODALITY_TYPE
, setModal(boolean)
, setModalityType(java.awt.Dialog.ModalityType)
, GraphicsEnvironment.isHeadless()
, Component.setSize(int, int)
, Component.setVisible(boolean)
public Dialog(Window owner)
Constructs an initially invisible, modeless Dialog
with the specified owner Window
and an empty title.
owner
- the owner of the dialog. The owner must be an instance of Dialog
, Frame
, any of their descendents or null
IllegalArgumentException
- if the owner
is not an instance of Dialog
or Frame
IllegalArgumentException
- if the owner
's GraphicsConfiguration
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
GraphicsEnvironment.isHeadless()
public Dialog(Window owner, String title)
Constructs an initially invisible, modeless Dialog
with the specified owner Window
and title.
owner
- the owner of the dialog. The owner must be an instance of Dialog
, Frame
, any of their descendents or null
title
- the title of the dialog or null
if this dialog has no titleIllegalArgumentException
- if the owner
is not an instance of Dialog
or Frame
IllegalArgumentException
- if the owner
's GraphicsConfiguration
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
GraphicsEnvironment.isHeadless()
public Dialog(Window owner, Dialog.ModalityType modalityType)
Constructs an initially invisible Dialog
with the specified owner Window
and modality and an empty title.
owner
- the owner of the dialog. The owner must be an instance of Dialog
, Frame
, any of their descendents or null
modalityType
- specifies whether dialog blocks input to other windows when shown. null
value and unsupported modality types are equivalent to MODELESS
IllegalArgumentException
- if the owner
is not an instance of Dialog
or Frame
IllegalArgumentException
- if the owner
's GraphicsConfiguration
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
SecurityException
- if the calling thread does not have permission to create modal dialogs with the given modalityType
Dialog.ModalityType
, setModal(boolean)
, setModalityType(java.awt.Dialog.ModalityType)
, GraphicsEnvironment.isHeadless()
, Toolkit.isModalityTypeSupported(java.awt.Dialog.ModalityType)
public Dialog(Window owner, String title, Dialog.ModalityType modalityType)
Constructs an initially invisible Dialog
with the specified owner Window
, title and modality.
owner
- the owner of the dialog. The owner must be an instance of Dialog
, Frame
, any of their descendents or null
title
- the title of the dialog or null
if this dialog has no titlemodalityType
- specifies whether dialog blocks input to other windows when shown. null
value and unsupported modality types are equivalent to MODELESS
IllegalArgumentException
- if the owner
is not an instance of Dialog
or Frame
IllegalArgumentException
- if the owner
's GraphicsConfiguration
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
SecurityException
- if the calling thread does not have permission to create modal dialogs with the given modalityType
Dialog.ModalityType
, setModal(boolean)
, setModalityType(java.awt.Dialog.ModalityType)
, GraphicsEnvironment.isHeadless()
, Toolkit.isModalityTypeSupported(java.awt.Dialog.ModalityType)
public Dialog(Window owner, String title, Dialog.ModalityType modalityType, GraphicsConfiguration gc)
Constructs an initially invisible Dialog
with the specified owner Window
, title, modality and GraphicsConfiguration
.
owner
- the owner of the dialog. The owner must be an instance of Dialog
, Frame
, any of their descendents or null
title
- the title of the dialog or null
if this dialog has no titlemodalityType
- specifies whether dialog blocks input to other windows when shown. null
value and unsupported modality types are equivalent to MODELESS
gc
- the GraphicsConfiguration
of the target screen device; if null
, the default system GraphicsConfiguration
is assumedIllegalArgumentException
- if the owner
is not an instance of Dialog
or Frame
IllegalArgumentException
- if gc
is not from a screen deviceHeadlessException
- when GraphicsEnvironment.isHeadless()
returns true
SecurityException
- if the calling thread does not have permission to create modal dialogs with the given modalityType
Dialog.ModalityType
, setModal(boolean)
, setModalityType(java.awt.Dialog.ModalityType)
, GraphicsEnvironment.isHeadless()
, Toolkit.isModalityTypeSupported(java.awt.Dialog.ModalityType)
public void addNotify()
Makes this Dialog displayable by connecting it to a native screen resource. Making a dialog displayable will cause any of its children to be made displayable. This method is called internally by the toolkit and should not be called directly by programs.
addNotify
in class Window
Component.isDisplayable()
, Window.removeNotify()
public boolean isModal()
Indicates whether the dialog is modal.
This method is obsolete and is kept for backwards compatibility only. Use getModalityType()
instead.
true
if this dialog window is modal; false
otherwiseDEFAULT_MODALITY_TYPE
, Dialog.ModalityType.MODELESS
, setModal(boolean)
, getModalityType()
, setModalityType(java.awt.Dialog.ModalityType)
public void setModal(boolean modal)
Specifies whether this dialog should be modal.
This method is obsolete and is kept for backwards compatibility only. Use setModalityType()
instead.
Note: changing modality of the visible dialog may have no effect until it is hidden and then shown again.
modal
- specifies whether dialog blocks input to other windows when shown; calling to setModal(true)
is equivalent to setModalityType(Dialog.DEFAULT_MODALITY_TYPE)
, and calling to setModal(false)
is equvivalent to setModalityType(Dialog.ModalityType.MODELESS)
DEFAULT_MODALITY_TYPE
, Dialog.ModalityType.MODELESS
, isModal()
, getModalityType()
, setModalityType(java.awt.Dialog.ModalityType)
public Dialog.ModalityType getModalityType()
Returns the modality type of this dialog.
setModalityType(java.awt.Dialog.ModalityType)
public void setModalityType(Dialog.ModalityType type)
Sets the modality type for this dialog. See ModalityType
for possible modality types.
If the given modality type is not supported, MODELESS
is used. You may want to call getModalityType()
after calling this method to ensure that the modality type has been set.
Note: changing modality of the visible dialog may have no effect until it is hidden and then shown again.
type
- specifies whether dialog blocks input to other windows when shown. null
value and unsupported modality types are equivalent to MODELESS
SecurityException
- if the calling thread does not have permission to create modal dialogs with the given modalityType
getModalityType()
, Toolkit.isModalityTypeSupported(java.awt.Dialog.ModalityType)
public String getTitle()
Gets the title of the dialog. The title is displayed in the dialog's border.
null
.setTitle(java.lang.String)
public void setTitle(String title)
Sets the title of the Dialog.
title
- the title displayed in the dialog's border; a null value results in an empty titlegetTitle()
public void setVisible(boolean b)
Shows or hides this Dialog
depending on the value of parameter b
.
setVisible
in class Window
b
- if true
, makes the Dialog
visible, otherwise hides the Dialog
. If the dialog and/or its owner are not yet displayable, both are made displayable. The dialog will be validated prior to being made visible. If false
, hides the Dialog
and then causes setVisible(true)
to return if it is currently blocked. Notes for modal dialogs.
setVisible(true)
: If the dialog is not already visible, this call will not return until the dialog is hidden by calling setVisible(false)
or dispose
. setVisible(false)
: Hides the dialog and then returns on setVisible(true)
if it is currently blocked. Window.setVisible(boolean)
, Window.dispose()
, Component.isDisplayable()
, Component.validate()
, isModal()
@Deprecated public void show()
Deprecated. As of JDK version 1.5, replaced by setVisible(boolean)
.
Makes the Dialog
visible. If the dialog and/or its owner are not yet displayable, both are made displayable. The dialog will be validated prior to being made visible. If the dialog is already visible, this will bring the dialog to the front.
If the dialog is modal and is not already visible, this call will not return until the dialog is hidden by calling hide or dispose. It is permissible to show modal dialogs from the event dispatching thread because the toolkit will ensure that another event pump runs while the one which invoked this method is blocked.
show
in class Window
Component.hide()
, Component.isDisplayable()
, Component.validate()
, isModal()
, Window.setVisible(boolean)
@Deprecated public void hide()
Deprecated. As of JDK version 1.5, replaced by setVisible(boolean)
.
Hides the Dialog and then causes show
to return if it is currently blocked.
hide
in class Window
Window.show()
, Window.dispose()
, Window.setVisible(boolean)
public void toBack()
If this Window is visible, sends this Window to the back and may cause it to lose focus or activation if it is the focused or active Window.
Places this Window at the bottom of the stacking order and shows it behind any other Windows in this VM. No action will take place is this Window is not visible. Some platforms do not allow Windows which are owned by other Windows to appear below their owners. Every attempt will be made to move this Window as low as possible in the stacking order; however, developers should not assume that this method will move this Window below all other windows in every situation.
Because of variations in native windowing systems, no guarantees about changes to the focused and active Windows can be made. Developers must never assume that this Window is no longer the focused or active Window until this Window receives a WINDOW_LOST_FOCUS or WINDOW_DEACTIVATED event. On platforms where the top-most window is the focused window, this method will probably cause this Window to lose focus. In that case, the next highest, focusable Window in this VM will receive focus. On platforms where the stacking order does not typically affect the focused window, this method will probably leave the focused and active Windows unchanged.
If this dialog is modal and blocks some windows, then all of them are also sent to the back to keep them below the blocking dialog.
toBack
in class Window
Window.toBack()
public boolean isResizable()
Indicates whether this dialog is resizable by the user. By default, all dialogs are initially resizable.
true
if the user can resize the dialog; false
otherwise.setResizable(boolean)
public void setResizable(boolean resizable)
Sets whether this dialog is resizable by the user.
resizable
- true
if the user can resize this dialog; false
otherwise.isResizable()
public void setUndecorated(boolean undecorated)
Disables or enables decorations for this dialog.
This method can only be called while the dialog is not displayable. To make this dialog decorated, it must be opaque and have the default shape, otherwise the IllegalComponentStateException
will be thrown. Refer to Window.setShape(java.awt.Shape)
, Window.setOpacity(float)
and Window.setBackground(java.awt.Color)
for details
undecorated
- true
if no dialog decorations are to be enabled; false
if dialog decorations are to be enabledIllegalComponentStateException
- if the dialog is displayableIllegalComponentStateException
- if undecorated
is false
, and this dialog does not have the default shapeIllegalComponentStateException
- if undecorated
is false
, and this dialog opacity is less than 1.0f
IllegalComponentStateException
- if undecorated
is false
, and the alpha value of this dialog background color is less than 1.0f
isUndecorated()
, Component.isDisplayable()
, Window.getShape()
, Window.getOpacity()
, Window.getBackground()
public boolean isUndecorated()
Indicates whether this dialog is undecorated. By default, all dialogs are initially decorated.
true
if dialog is undecorated; false
otherwise.setUndecorated(boolean)
public void setOpacity(float opacity)
Sets the opacity of the window.
The opacity value is in the range [0..1]. Note that setting the opacity level of 0 may or may not disable the mouse event handling on this window. This is a platform-dependent behavior.
The following conditions must be met in order to set the opacity value less than 1.0f
:
TRANSLUCENT
translucency must be supported by the underlying system Frame.setUndecorated(boolean)
and setUndecorated(boolean)
) GraphicsDevice.setFullScreenWindow(Window)
) If the requested opacity value is less than 1.0f
, and any of the above conditions are not met, the window opacity will not change, and the IllegalComponentStateException
will be thrown.
The translucency levels of individual pixels may also be effected by the alpha component of their color (see Window.setBackground(Color)
) and the current shape of this window (see Window.setShape(Shape)
).
setOpacity
in class Window
opacity
- the opacity level to set to the windowWindow.getOpacity()
, Window.setBackground(Color)
, Window.setShape(Shape)
, Frame.isUndecorated()
, isUndecorated()
, GraphicsDevice.WindowTranslucency
, GraphicsDevice.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency)
public void setShape(Shape shape)
Sets the shape of the window.
Setting a shape cuts off some parts of the window. Only the parts that belong to the given Shape
remain visible and clickable. If the shape argument is null
, this method restores the default shape, making the window rectangular on most platforms.
The following conditions must be met to set a non-null shape:
PERPIXEL_TRANSPARENT
translucency must be supported by the underlying system Frame.setUndecorated(boolean)
and setUndecorated(boolean)
) GraphicsDevice.setFullScreenWindow(Window)
) If the requested shape is not null
, and any of the above conditions are not met, the shape of this window will not change, and either the UnsupportedOperationException
or IllegalComponentStateException
will be thrown.
The translucency levels of individual pixels may also be effected by the alpha component of their color (see Window.setBackground(Color)
) and the opacity value (see Window.setOpacity(float)
). See GraphicsDevice.WindowTranslucency
for more details.
setShape
in class Window
shape
- the shape to set to the windowWindow.getShape()
, Window.setBackground(Color)
, Window.setOpacity(float)
, Frame.isUndecorated()
, isUndecorated()
, GraphicsDevice.WindowTranslucency
, GraphicsDevice.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency)
public void setBackground(Color bgColor)
Sets the background color of this window.
If the windowing system supports the PERPIXEL_TRANSLUCENT
translucency, the alpha component of the given background color may effect the mode of operation for this window: it indicates whether this window must be opaque (alpha equals 1.0f
) or per-pixel translucent (alpha is less than 1.0f
). If the given background color is null
, the window is considered completely opaque.
All the following conditions must be met to enable the per-pixel transparency mode for this window:
PERPIXEL_TRANSLUCENT
translucency must be supported by the graphics device where this window is located Frame.setUndecorated(boolean)
and setUndecorated(boolean)
) GraphicsDevice.setFullScreenWindow(Window)
) If the alpha component of the requested background color is less than 1.0f
, and any of the above conditions are not met, the background color of this window will not change, the alpha component of the given background color will not affect the mode of operation for this window, and either the UnsupportedOperationException
or IllegalComponentStateException
will be thrown.
When the window is per-pixel translucent, the drawing sub-system respects the alpha value of each individual pixel. If a pixel gets painted with the alpha color component equal to zero, it becomes visually transparent. If the alpha of the pixel is equal to 1.0f, the pixel is fully opaque. Interim values of the alpha color component make the pixel semi-transparent. In this mode, the background of the window gets painted with the alpha value of the given background color. If the alpha value of the argument of this method is equal to 0
, the background is not painted at all.
The actual level of translucency of a given pixel also depends on window opacity (see Window.setOpacity(float)
), as well as the current shape of this window (see Window.setShape(Shape)
).
Note that painting a pixel with the alpha value of 0
may or may not disable the mouse event handling on this pixel. This is a platform-dependent behavior. To make sure the mouse events do not get dispatched to a particular pixel, the pixel must be excluded from the shape of the window.
Enabling the per-pixel translucency mode may change the graphics configuration of this window due to the native platform requirements.
setBackground
in class Window
bgColor
- the color to become this window's background color.Window.getBackground()
, Window.isOpaque()
, Window.setOpacity(float)
, Window.setShape(Shape)
, Frame.isUndecorated()
, isUndecorated()
, GraphicsDevice.WindowTranslucency
, GraphicsDevice.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency)
, GraphicsConfiguration.isTranslucencyCapable()
protected String paramString()
Returns a string representing the state of this dialog. 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 Container
public AccessibleContext getAccessibleContext()
Gets the AccessibleContext associated with this Dialog. For dialogs, the AccessibleContext takes the form of an AccessibleAWTDialog. A new AccessibleAWTDialog instance is created if necessary.
getAccessibleContext
in interface Accessible
getAccessibleContext
in class Window
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.