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
This class should be treated as a "protected" inner class.
|
static class |
BasicOptionPaneUI
ButtonAreaLayout behaves in a similar manner to
FlowLayout.
|
class |
BasicOptionPaneUI
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
|
protected Dimension |
minimumSize
|
static int |
MinimumWidth
|
protected JOptionPane |
optionPane
JOptionPane that the receiver is providing the look and feel for.
|
protected PropertyChangeListener |
propertyChangeListener
|
| Constructor and Description |
|---|
BasicOptionPaneUI()
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addButtonComponents(Container
Creates the appropriate object to represent each of the objects in
buttons and adds it to
container.
|
protected void |
addIcon(Container
Creates and adds a JLabel representing the icon returned from
getIcon to
top.
|
protected void |
addMessageComponents(Container
Creates the appropriate object to represent
msg and places it into
container.
|
protected void |
burstStringInto(Container
Recursively creates new JLabel instances to represent
d.
|
boolean |
containsCustomComponents(JOptionPane
Returns true if in the last call to validateComponent the message or buttons contained a subclass of Component.
|
protected ActionListener |
createButtonActionListener(int buttonIndex)
|
protected Container |
createButtonArea()
Creates and returns a Container containing the buttons.
|
protected LayoutManager |
createLayoutManager()
|
protected Container |
createMessageArea()
Messaged from installComponents to create a Container containing the body of the message.
|
protected PropertyChangeListener |
createPropertyChangeListener()
|
protected Container |
createSeparator()
|
static ComponentUI |
createUI(JComponent
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
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()
|
protected void |
installDefaults()
|
protected void |
installKeyboardActions()
|
protected void |
installListeners()
|
void |
installUI(JComponent
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
If inputComponent is non-null, the focus is requested on that, otherwise request focus on the default value
|
protected void |
uninstallComponents()
|
protected void |
uninstallDefaults()
|
protected void |
uninstallKeyboardActions()
|
protected void |
uninstallListeners()
|
void |
uninstallUI(JComponent
Removes the receiver from the L&F controller of the passed in split pane.
|
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, paint, updatepublic static final int MinimumWidth
public static final int MinimumHeight
protected JOptionPaneoptionPane
JOptionPane that the receiver is providing the look and feel for.
protected DimensionminimumSize
protected JComponentinputComponent
protected ComponentinitialFocusComponent
protected boolean hasCustomComponents
protected PropertyChangeListenerpropertyChangeListener
public static ComponentUIcreateUI(JComponent x)
public void installUI(JComponentc)
JOptionPane.
installUI in class
ComponentUI
c - the component where this UI delegate is being installed
ComponentUI.uninstallUI(javax.swing.JComponent) ,
JComponent.setUI(javax.swing.plaf.ComponentUI) ,
JComponent.updateUI()
public void uninstallUI(JComponentc)
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 components
ComponentUI.installUI(javax.swing.JComponent) ,
JComponent.updateUI()
protected void installDefaults()
protected void uninstallDefaults()
protected void installComponents()
protected void uninstallComponents()
protected LayoutManagercreateLayoutManager()
protected void installListeners()
protected void uninstallListeners()
protected PropertyChangeListenercreatePropertyChangeListener()
protected void installKeyboardActions()
protected void uninstallKeyboardActions()
public DimensiongetMinimumOptionPaneSize()
public DimensiongetPreferredSize(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 components
JComponent.getPreferredSize() ,
LayoutManager.preferredLayoutSize(java.awt.Container)
protected ContainercreateMessageArea()
addIcon.
protected void addMessageComponents(Containercontainer, 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
d is an Object[], this method will be recursively invoked for the children.
internallyCreated is true if Objc is an instance of Component and was created internally by this method (this is used to correctly set hasCustomComponents only if !internallyCreated).
protected ObjectgetMessage()
protected void addIcon(Containertop)
getIcon to
top. This is messaged from
createMessageArea
protected IcongetIcon()
getDefaultIcon.
protected IcongetIconForType(int messageType)
protected int getMaxCharactersPerLineCount()
protected void burstStringInto(Containerc, String d, int maxll)
d. Each JLabel instance is added to
c.
protected ContainercreateSeparator()
protected ContainercreateButtonArea()
getButtons.
protected void addButtonComponents(Containercontainer, 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.
protected ActionListenercreateButtonActionListener(int buttonIndex)
protected Object[] getButtons()
protected boolean getSizeButtonsToSameWidth()
protected int getInitialValueIndex()
protected void resetInputValue()
public void selectInitialValue(JOptionPaneop)
public boolean containsCustomComponents(JOptionPaneop)