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.ButtonActionListenerThis class should be treated as a "protected" inner class. | 
| static class  | BasicOptionPaneUI.ButtonAreaLayoutButtonAreaLayoutbehaves in a similar manner toFlowLayout. | 
| class  | BasicOptionPaneUI.PropertyChangeHandlerThis class should be treated as a "protected" inner class. | 
| Modifier and Type | Field and Description | 
|---|---|
| protected boolean | hasCustomComponentsThis is set to true in validateComponent if a Component is contained
 in either the message or the buttons. | 
| protected Component | initialFocusComponentComponent to receive focus when messaged with selectInitialValue. | 
| protected JComponent | inputComponentJComponent provide for input if optionPane.getWantsInput() returns
 true. | 
| static int | MinimumHeight | 
| protected Dimension | minimumSize | 
| static int | MinimumWidth | 
| protected JOptionPane | optionPaneJOptionPanethat 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 container,
                   Object[] buttons,
                   int initialIndex)Creates the appropriate object to represent each of the objects in
  buttonsand adds it tocontainer. | 
| protected void | addIcon(Container top)Creates and adds a JLabel representing the icon returned from
  getIcontotop. | 
| protected void | addMessageComponents(Container container,
                    GridBagConstraints cons,
                    Object msg,
                    int maxll,
                    boolean internallyCreated)Creates the appropriate object to represent  msgand
 places it intocontainer. | 
| 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) | 
| 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 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  cis theJOptionPanethe receiver
 is contained in, the preferred
 size that is returned is the maximum of the preferred size of
 theLayoutManagerfor theJOptionPane, andgetMinimumOptionPaneSize. | 
| 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 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() | 
| protected void | uninstallDefaults() | 
| protected void | uninstallKeyboardActions() | 
| protected void | uninstallListeners() | 
| 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, updatepublic static final int MinimumWidth
public static final int MinimumHeight
protected JOptionPane optionPane
JOptionPane that the receiver is providing the
 look and feel for.protected Dimension minimumSize
protected JComponent inputComponent
protected Component initialFocusComponent
protected boolean hasCustomComponents
protected PropertyChangeListener propertyChangeListener
public static ComponentUI createUI(JComponent x)
public void installUI(JComponent c)
JOptionPane.installUI in class ComponentUIc - 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 ComponentUIc - 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()
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 ComponentUIc - 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 componentsJComponent.getPreferredSize(), 
LayoutManager.preferredLayoutSize(java.awt.Container)protected Container createMessageArea()
addIcon.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 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 Object getMessage()
protected void addIcon(Container top)
getIcon to top. This is messaged from
 createMessageAreaprotected Icon getIcon()
getDefaultIcon.protected Icon getIconForType(int messageType)
protected int getMaxCharactersPerLineCount()
protected void burstStringInto(Container c, String d, int maxll)
d.
 Each JLabel instance is added to c.protected Container createSeparator()
protected Container createButtonArea()
getButtons.protected 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.protected ActionListener createButtonActionListener(int buttonIndex)
protected Object[] getButtons()
protected boolean getSizeButtonsToSameWidth()
protected int getInitialValueIndex()
protected void resetInputValue()
public void selectInitialValue(JOptionPane op)
selectInitialValue in class OptionPaneUIpublic boolean containsCustomComponents(JOptionPane op)
containsCustomComponents in class OptionPaneUI 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, 2023, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.