Class BasicOptionPaneUI
java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.OptionPaneUI
javax.swing.plaf.basic.BasicOptionPaneUI
- Direct Known Subclasses:
SynthOptionPaneUI
public class BasicOptionPaneUI extends OptionPaneUI
Provides the basic look and feel for a
JOptionPane. BasicMessagePaneUI provides a means to place an icon, message and buttons into a Container. Generally, the layout will look like:
------------------
| i | message |
| c | message |
| o | message |
| n | message |
------------------
| buttons |
|________________|
icon is an instance of Icon that is wrapped inside a JLabel. The message is an opaque object and is tested for the following: if the message is a Component it is added to the Container, if it is an Icon it is wrapped inside a JLabel and added to the Container otherwise it is wrapped inside a JLabel. The above layout is used when the option pane's ComponentOrientation property is horizontal, left-to-right. The layout will be adjusted appropriately for other orientations.
The Container, message, icon, and buttons are all determined from abstract methods.
Nested Class Summary
| Modifier and Type | Class | Description |
|---|---|---|
class |
BasicOptionPaneUI.ButtonActionListener |
This class should be treated as a "protected" inner class. |
static class |
BasicOptionPaneUI.ButtonAreaLayout |
ButtonAreaLayout behaves in a similar manner to FlowLayout. |
class |
BasicOptionPaneUI.PropertyChangeHandler |
This class should be treated as a "protected" inner class. |
Field Summary
| Modifier and Type | Field | Description |
|---|---|---|
protected boolean |
hasCustomComponents |
This is set to true in validateComponent if a Component is contained in either the message or the buttons. |
protected Component |
initialFocusComponent |
Component to receive focus when messaged with selectInitialValue. |
protected JComponent |
inputComponent |
JComponent provide for input if optionPane.getWantsInput() returns true. |
static final int |
MinimumHeight |
The minimum height of JOptionPane. |
protected Dimension |
minimumSize |
The size of JOptionPane. |
static final int |
MinimumWidth |
The minimum width of JOptionPane. |
protected JOptionPane |
optionPane |
JOptionPane that the receiver is providing the look and feel for. |
protected PropertyChangeListener |
propertyChangeListener |
The instance of PropertyChangeListener. |
Constructor Summary
| Constructor | Description |
|---|---|
BasicOptionPaneUI() |
Constructs a BasicOptionPaneUI. |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
protected void |
addButtonComponents |
Creates the appropriate object to represent each of the objects in buttons and adds it to container. |
protected void |
addIcon |
Creates and adds a JLabel representing the icon returned from getIcon to top. |
protected void |
addMessageComponents |
Creates the appropriate object to represent msg and places it into container. |
protected void |
burstStringInto |
Recursively creates new JLabel instances to represent d. |
boolean |
containsCustomComponents |
Returns true if in the last call to validateComponent the message or buttons contained a subclass of Component. |
protected ActionListener |
createButtonActionListener |
Constructs a new instance of a ButtonActionListener. |
protected Container |
createButtonArea() |
Creates and returns a Container containing the buttons. |
protected LayoutManager |
createLayoutManager() |
Returns a layout manager. |
protected Container |
createMessageArea() |
Messaged from installComponents to create a Container containing the body of the message. |
protected PropertyChangeListener |
createPropertyChangeListener() |
Returns an instance of PropertyChangeListener. |
protected Container |
createSeparator() |
Returns a separator. |
static ComponentUI |
createUI |
Creates a new BasicOptionPaneUI instance. |
protected Object[] |
getButtons() |
Returns the buttons to display from the JOptionPane the receiver is providing the look and feel for. |
protected Icon |
getIcon() |
Returns the icon from the JOptionPane the receiver is providing the look and feel for, or the default icon as returned from getDefaultIcon. |
protected Icon |
getIconForType |
Returns the icon to use for the passed in type. |
protected int |
getInitialValueIndex() |
Returns the initial index into the buttons to select. |
protected int |
getMaxCharactersPerLineCount() |
Returns the maximum number of characters to place on a line. |
protected Object |
getMessage() |
Returns the message to display from the JOptionPane the receiver is providing the look and feel for. |
Dimension |
getMinimumOptionPaneSize() |
Returns the minimum size the option pane should be. |
Dimension |
getPreferredSize |
If c is the JOptionPane the receiver is contained in, the preferred size that is returned is the maximum of the preferred size of the LayoutManager for the JOptionPane, and getMinimumOptionPaneSize. |
protected boolean |
getSizeButtonsToSameWidth() |
Returns true, basic L&F wants all the buttons to have the same width. |
protected void |
installComponents() |
Registers components. |
protected void |
installDefaults() |
Installs default properties. |
protected void |
installKeyboardActions() |
Registers keyboard actions. |
protected void |
installListeners() |
Registers listeners. |
void |
installUI |
Installs the receiver as the L&F for the passed in JOptionPane. |
protected void |
resetInputValue() |
Sets the input value in the option pane the receiver is providing the look and feel for based on the value in the inputComponent. |
void |
selectInitialValue |
If inputComponent is non-null, the focus is requested on that, otherwise request focus on the default value |
protected void |
uninstallComponents() |
Unregisters components. |
protected void |
uninstallDefaults() |
Uninstalls default properties. |
protected void |
uninstallKeyboardActions() |
Unregisters keyboard actions. |
protected void |
uninstallListeners() |
Unregisters listeners. |
void |
uninstallUI |
Removes the receiver from the L&F controller of the passed in split pane. |
Methods declared in class ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, paint, update | Modifier and Type | Method | Description |
|---|---|---|
boolean |
contains |
Returns true if the specified x,y location is contained within the look and feel's defined shape of the specified component. |
Accessible |
getAccessibleChild |
Returns the ith Accessible child of the object. |
int |
getAccessibleChildrenCount |
Returns the number of accessible children in the object. |
int |
getBaseline |
Returns the baseline. |
Component.BaselineResizeBehavior |
getBaselineResizeBehavior |
Returns an enum indicating how the baseline of the component changes as the size changes. |
Dimension |
getMaximumSize |
Returns the specified component's maximum size appropriate for the look and feel. |
Dimension |
getMinimumSize |
Returns the specified component's minimum size appropriate for the look and feel. |
void |
paint |
Paints the specified component appropriately for the look and feel. |
void |
update |
Notifies this UI delegate that it is time to paint the specified component. |
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 |
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 |
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 |
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. |
Field Details
MinimumWidth
public static final int MinimumWidth
The minimum width of
JOptionPane.- See Also:
MinimumHeight
public static final int MinimumHeight
The minimum height of
JOptionPane.- See Also:
optionPane
protected JOptionPane optionPane
JOptionPane that the receiver is providing the look and feel for.minimumSize
protected Dimension minimumSize
The size of
JOptionPane.inputComponent
protected JComponent inputComponent
JComponent provide for input if optionPane.getWantsInput() returns true.
initialFocusComponent
protected Component initialFocusComponent
Component to receive focus when messaged with selectInitialValue.
hasCustomComponents
protected boolean hasCustomComponents
This is set to true in validateComponent if a Component is contained in either the message or the buttons.
propertyChangeListener
protected PropertyChangeListener propertyChangeListener
The instance of
PropertyChangeListener.Constructor Details
BasicOptionPaneUI
public BasicOptionPaneUI()
Constructs a
BasicOptionPaneUI.Method Details
createUI
public static ComponentUI createUI(JComponent x)
Creates a new
BasicOptionPaneUI instance.- Parameters:
-
x- the component - Returns:
- a new
BasicOptionPaneUIinstance
installUI
public void installUI(JComponent c)
Installs the receiver as the L&F for the passed in
JOptionPane.- Overrides:
-
installUIin classComponentUI - Parameters:
-
c- the component where this UI delegate is being installed - See Also:
uninstallUI
public void uninstallUI(JComponent c)
Removes the receiver from the L&F controller of the passed in split pane.
- Overrides:
-
uninstallUIin classComponentUI - Parameters:
-
c- the component from which this UI delegate is being removed; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components - See Also:
installDefaults
protected void installDefaults()
Installs default properties.
uninstallDefaults
protected void uninstallDefaults()
Uninstalls default properties.
installComponents
protected void installComponents()
Registers components.
uninstallComponents
protected void uninstallComponents()
Unregisters components.
createLayoutManager
protected LayoutManager createLayoutManager()
Returns a layout manager.
- Returns:
- a layout manager
installListeners
protected void installListeners()
Registers listeners.
uninstallListeners
protected void uninstallListeners()
Unregisters listeners.
createPropertyChangeListener
protected PropertyChangeListener createPropertyChangeListener()
Returns an instance of
PropertyChangeListener.- Returns:
- an instance of
PropertyChangeListener
installKeyboardActions
protected void installKeyboardActions()
Registers keyboard actions.
uninstallKeyboardActions
protected void uninstallKeyboardActions()
Unregisters keyboard actions.
getMinimumOptionPaneSize
public Dimension getMinimumOptionPaneSize()
Returns the minimum size the option pane should be. Primarily provided for subclassers wishing to offer a different minimum size.
- Returns:
- the minimum size of the option pane
getPreferredSize
public Dimension getPreferredSize(JComponent c)
If
c is the JOptionPane the receiver is contained in, the preferred size that is returned is the maximum of the preferred size of the LayoutManager for the JOptionPane, and getMinimumOptionPaneSize.- Overrides:
-
getPreferredSizein classComponentUI - Parameters:
-
c- the component whose preferred size is being queried; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components - Returns:
- a
Dimensionobject containing given component's preferred size appropriate for the look and feel - See Also:
createMessageArea
protected Container createMessageArea()
Messaged from
installComponents to create a Container containing the body of the message. The icon is the created by calling addIcon.- Returns:
- a instance of
Container
addMessageComponents
protected void addMessageComponents(Container container, GridBagConstraints cons, Object msg, int maxll, boolean internallyCreated)
Creates the appropriate object to represent
msg and places it into container. If msg is an instance of Component, it is added directly; if it is an Icon, a JLabel is created to represent it; otherwise, a JLabel is created for the string. If msg is an Object[], this method will be recursively invoked for the children. internallyCreated is true if msg is an instance of Component and was created internally by this method (this is used to correctly set hasCustomComponents only if internallyCreated is false).- Parameters:
-
container- a container -
cons- an instance ofGridBagConstraints -
msg- a message -
maxll- a maximum length -
internallyCreated-trueif the component was internally created
getMessage
protected Object getMessage()
Returns the message to display from the
JOptionPane the receiver is providing the look and feel for.- Returns:
- the message to display
addIcon
protected void addIcon(Container top)
Creates and adds a JLabel representing the icon returned from
getIcon to top. This is messaged from createMessageArea.- Parameters:
-
top- a container
getIcon
protected Icon getIcon()
Returns the icon from the
JOptionPane the receiver is providing the look and feel for, or the default icon as returned from getDefaultIcon.- Returns:
- the icon
getIconForType
protected Icon getIconForType(int messageType)
Returns the icon to use for the passed in type.
- Parameters:
-
messageType- a type of message - Returns:
- the icon to use for the passed in type
getMaxCharactersPerLineCount
protected int getMaxCharactersPerLineCount()
Returns the maximum number of characters to place on a line.
- Returns:
- the maximum number of characters to place on a line
burstStringInto
protected void burstStringInto(Container c, String d, int maxll)
Recursively creates new
JLabel instances to represent d. Each JLabel instance is added to c.- Parameters:
-
c- a container -
d- a text -
maxll- a maximum length of a text
createSeparator
protected Container createSeparator()
Returns a separator.
- Returns:
- a separator
createButtonArea
protected Container createButtonArea()
Creates and returns a
Container containing the buttons. The buttons are created by calling getButtons.- Returns:
- a
Containercontaining the buttons
addButtonComponents
protected void addButtonComponents(Container container, Object[] buttons, int initialIndex)
Creates the appropriate object to represent each of the objects in
buttons and adds it to container. This differs from addMessageComponents in that it will recurse on buttons and that if button is not a Component it will create an instance of JButton.- Parameters:
-
container- a container -
buttons- an array of buttons -
initialIndex- an initial index
createButtonActionListener
protected ActionListener createButtonActionListener(int buttonIndex)
Constructs a new instance of a
ButtonActionListener.- Parameters:
-
buttonIndex- an index of the button - Returns:
- a new instance of a
ButtonActionListener
getButtons
protected Object[] getButtons()
Returns the buttons to display from the
JOptionPane the receiver is providing the look and feel for. If the JOptionPane has options set, they will be provided, otherwise if the optionType is YES_NO_OPTION, yesNoOptions is returned, if the type is YES_NO_CANCEL_OPTION yesNoCancelOptions is returned, otherwise defaultButtons are returned.- Returns:
- the buttons to display from the JOptionPane
getSizeButtonsToSameWidth
protected boolean getSizeButtonsToSameWidth()
Returns
true, basic L&F wants all the buttons to have the same width.- Returns:
-
trueif all the buttons should have the same width
getInitialValueIndex
protected int getInitialValueIndex()
Returns the initial index into the buttons to select. The index is calculated from the initial value from the JOptionPane and options of the JOptionPane or 0.
- Returns:
- the initial index into the buttons to select
resetInputValue
protected void resetInputValue()
Sets the input value in the option pane the receiver is providing the look and feel for based on the value in the inputComponent.
selectInitialValue
public void selectInitialValue(JOptionPane op)
If inputComponent is non-null, the focus is requested on that, otherwise request focus on the default value
- Specified by:
-
selectInitialValuein classOptionPaneUI - Parameters:
-
op- aJOptionPane
containsCustomComponents
public boolean containsCustomComponents(JOptionPane op)
Returns true if in the last call to validateComponent the message or buttons contained a subclass of Component.
- Specified by:
-
containsCustomComponentsin classOptionPaneUI - Parameters:
-
op- aJOptionPane - Returns:
-
trueif the givenJOptionPanecontains user createdComponents
© 1993, 2025, 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.