public class BasicOptionPaneUI extends OptionPaneUI
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.
Modifier and Type | Class and 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.
|
Modifier and Type | Field and 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 int |
MinimumHeight
The mininum height of
JOptionPane . |
protected Dimension |
minimumSize
The size of
JOptionPane . |
static int |
MinimumWidth
The mininum 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 and Description |
---|
BasicOptionPaneUI() |
Modifier and Type | Method and Description |
---|---|
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 . |
protected void |
addIcon(Container top)
Creates and adds a JLabel representing the icon returned from
getIcon to top . |
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 . |
protected void |
burstStringInto(Container c,
String d,
int maxll)
Recursively creates new
JLabel instances to represent d . |
boolean |
containsCustomComponents(JOptionPane op)
Returns true if in the last call to validateComponent the message
or buttons contained a subclass of Component.
|
protected ActionListener |
createButtonActionListener(int buttonIndex)
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(JComponent x)
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(int messageType)
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(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 . |
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(JComponent c)
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(JOptionPane op)
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(JComponent c)
Removes the receiver from the L&F controller of the passed in split
pane.
|
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, paint, update
public static final int MinimumWidth
JOptionPane
.public static final int MinimumHeight
JOptionPane
.protected JOptionPane optionPane
JOptionPane
that the receiver is providing the
look and feel for.protected Dimension minimumSize
JOptionPane
.protected JComponent inputComponent
protected Component initialFocusComponent
protected boolean hasCustomComponents
protected PropertyChangeListener propertyChangeListener
PropertyChangeListener
.public static ComponentUI createUI(JComponent x)
BasicOptionPaneUI
instance.x
- the componentBasicOptionPaneUI
instancepublic void installUI(JComponent c)
JOptionPane
.installUI
in class ComponentUI
c
- the component where this UI delegate is being installedComponentUI.uninstallUI(javax.swing.JComponent)
,
JComponent.setUI(javax.swing.plaf.ComponentUI)
,
JComponent.updateUI()
public void uninstallUI(JComponent c)
uninstallUI
in class ComponentUI
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 componentsComponentUI.installUI(javax.swing.JComponent)
,
JComponent.updateUI()
protected void installDefaults()
protected void uninstallDefaults()
protected void installComponents()
protected void uninstallComponents()
protected LayoutManager createLayoutManager()
protected void installListeners()
protected void uninstallListeners()
protected PropertyChangeListener createPropertyChangeListener()
PropertyChangeListener
.PropertyChangeListener
protected void installKeyboardActions()
protected void uninstallKeyboardActions()
public Dimension getMinimumOptionPaneSize()
public Dimension getPreferredSize(JComponent c)
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
.getPreferredSize
in class ComponentUI
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 componentsDimension
object containing given component's preferred
size appropriate for the look and feelJComponent.getPreferredSize()
,
LayoutManager.preferredLayoutSize(java.awt.Container)
protected Container createMessageArea()
installComponents
to create a Container
containing the body of the message. The icon is the created
by calling addIcon
.Container
protected void addMessageComponents(Container container, GridBagConstraints cons, Object msg, int maxll, boolean internallyCreated)
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
).container
- a containercons
- an instance of GridBagConstraints
msg
- a messagemaxll
- a maximum lengthinternallyCreated
- true
if the component was internally createdprotected Object getMessage()
JOptionPane
the receiver is
providing the look and feel for.protected void addIcon(Container top)
getIcon
to top
. This is messaged from
createMessageArea
.top
- a containerprotected Icon getIcon()
JOptionPane
the receiver is providing
the look and feel for, or the default icon as returned from
getDefaultIcon
.protected Icon getIconForType(int messageType)
messageType
- a type of messageprotected int getMaxCharactersPerLineCount()
protected void burstStringInto(Container c, String d, int maxll)
JLabel
instances to represent d
.
Each JLabel
instance is added to c
.c
- a containerd
- a textmaxll
- a maximum length of a textprotected Container createSeparator()
protected Container createButtonArea()
Container
containing the buttons.
The buttons are created by calling getButtons
.Container
containing the buttonsprotected void addButtonComponents(Container container, Object[] buttons, int initialIndex)
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.container
- a containerbuttons
- an array of buttonsinitialIndex
- an initial indexprotected ActionListener createButtonActionListener(int buttonIndex)
ButtonActionListener
.buttonIndex
- an index of the buttonButtonActionListener
protected Object[] getButtons()
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.protected boolean getSizeButtonsToSameWidth()
true
, basic L&F wants all the buttons to have the same
width.true
if all the buttons should have the same widthprotected int getInitialValueIndex()
protected void resetInputValue()
public void selectInitialValue(JOptionPane op)
selectInitialValue
in class OptionPaneUI
op
- a JOptionPane
public boolean containsCustomComponents(JOptionPane op)
containsCustomComponents
in class OptionPaneUI
op
- a JOptionPane
true
if the given JOptionPane
contains user
created Component
s Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved.
DRAFT 9-internal+0-2016-01-26-133437.ivan.openjdk9onspinwait