public class BasicOptionPaneUI extends OptionPaneUI
JOptionPane
的基本外观和感觉。
BasicMessagePaneUI
提供了一种将图标,消息和按钮放在Container
。
一般来说,布局将如下所示:
------------------
| i | message |
| c | message |
| o | message |
| n | message |
------------------
| buttons |
|________________|
图标是一个Icon
一个实例, Icon
包含一个JLabel
。
该消息是一个不透明的对象,并测试了以下内容:如果消息是一个Component
它被添加到Container
,如果它是一个Icon
它被包裹在一个JLabel
并添加到Container
否则它被包裹在一个JLabel
。
当选项窗格的ComponentOrientation
属性为水平,从左到右时,将使用上述布局。 布局将根据其他方向进行适当的调整。
Container
,消息,图标和按钮都是从抽象方法确定的。
Modifier and Type | Class and Description |
---|---|
class |
BasicOptionPaneUI.ButtonActionListener
这个类应该被视为一个“受保护”的内部类。
|
static class |
BasicOptionPaneUI.ButtonAreaLayout
ButtonAreaLayout 行为方式类似于
FlowLayout 。
|
class |
BasicOptionPaneUI.PropertyChangeHandler
这个类应该被视为一个“受保护”的内部类。
|
Modifier and Type | Field and Description |
---|---|
protected boolean |
hasCustomComponents
如果组件包含在消息或按钮中,则在validateComponent中设置为true。
|
protected Component |
initialFocusComponent
在使用selectInitialValue消息时接收焦点的组件。
|
protected JComponent |
inputComponent
如果optionPane.getWantsInput()返回true,则JComponent提供输入。
|
static int |
MinimumHeight |
protected Dimension |
minimumSize |
static int |
MinimumWidth |
protected JOptionPane |
optionPane
JOptionPane 接收机提供外观和感觉。
|
protected PropertyChangeListener |
propertyChangeListener |
Constructor and Description |
---|
BasicOptionPaneUI() |
Modifier and Type | Method and Description |
---|---|
protected void |
addButtonComponents(Container container, Object[] buttons, int initialIndex)
创建相应的对象,以表示每个对象的
buttons 并将其添加到
container 。
|
protected void |
addIcon(Container top)
创建并添加一个JLabel代表从返回的图标
getIcon 到
top 。
|
protected void |
addMessageComponents(Container container, GridBagConstraints cons, Object msg, int maxll, boolean internallyCreated)
创建适当的对象以表示
msg 并将其放入
container 。
|
protected void |
burstStringInto(Container c, String d, int maxll)
递归创建新的JLabel实例来表示
d 。
|
boolean |
containsCustomComponents(JOptionPane op)
如果在最后一次调用validateComponent消息或按钮包含Component的子类时返回true。
|
protected ActionListener |
createButtonActionListener(int buttonIndex) |
protected Container |
createButtonArea()
创建并返回一个包含按钮的容器。
|
protected LayoutManager |
createLayoutManager() |
protected Container |
createMessageArea()
从installComponents传出消息,创建一个包含消息正文的容器。
|
protected PropertyChangeListener |
createPropertyChangeListener() |
protected Container |
createSeparator() |
static ComponentUI |
createUI(JComponent x)
创建一个新的BasicOptionPaneUI实例。
|
protected Object[] |
getButtons()
返回从JOptionPane显示的按钮,接收器提供外观和感觉。
|
protected Icon |
getIcon()
从接收器提供外观的JOptionPane或从
getDefaultIcon 返回的默认图标返回图标。
|
protected Icon |
getIconForType(int messageType)
返回用于传入类型的图标。
|
protected int |
getInitialValueIndex()
将初始索引返回到要选择的按钮中。
|
protected int |
getMaxCharactersPerLineCount()
返回一行中放置的最大字符数。
|
protected Object |
getMessage()
返回从JOptionPane显示的消息,接收方提供外观和感觉。
|
Dimension |
getMinimumOptionPaneSize()
返回选项窗格应该是最小的大小。
|
Dimension |
getPreferredSize(JComponent c)
如果
c 是
JOptionPane 收件人,则返回的首选大小是
JOptionPane 和
getMinimumOptionPaneSize 的
LayoutManager 的首选大小的
getMinimumOptionPaneSize 。
|
protected boolean |
getSizeButtonsToSameWidth()
返回true,基本的L&F希望所有的按钮具有相同的宽度。
|
protected void |
installComponents() |
protected void |
installDefaults() |
protected void |
installKeyboardActions() |
protected void |
installListeners() |
void |
installUI(JComponent c)
安装接收器作为传递给
JOptionPane 的L&F。
|
protected void |
resetInputValue()
在选项窗格中设置输入值,接收器根据inputComponent中的值提供外观。
|
void |
selectInitialValue(JOptionPane op)
如果inputComponent为非空值,那么请求焦点,否则请求关注默认值
|
protected void |
uninstallComponents() |
protected void |
uninstallDefaults() |
protected void |
uninstallKeyboardActions() |
protected void |
uninstallListeners() |
void |
uninstallUI(JComponent c)
从分离窗格中传递的L&F控制器中删除接收者。
|
contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, paint, update
public static final int MinimumWidth
public static final int MinimumHeight
protected JOptionPane optionPane
JOptionPane
接收机提供外观和感觉。
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
的L&F。
installUI
在
ComponentUI
类
c
- 安装此UI代理的组件
ComponentUI.uninstallUI(javax.swing.JComponent)
,
JComponent.setUI(javax.swing.plaf.ComponentUI)
,
JComponent.updateUI()
public void uninstallUI(JComponent c)
uninstallUI
在类
ComponentUI
c
- 删除此UI代理的组件;
这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用
ComponentUI.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
是
JOptionPane
的接收器,则返回的首选大小是
LayoutManager
的
JOptionPane
和
getMinimumOptionPaneSize
的首选大小的
getMinimumOptionPaneSize
。
getPreferredSize
在类
ComponentUI
c
- 要查询其首选大小的组件;
这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用
JComponent.getPreferredSize()
,
LayoutManager.preferredLayoutSize(java.awt.Container)
protected Container createMessageArea()
addIcon
创建的。
protected void addMessageComponents(Container container, GridBagConstraints cons, Object msg, int maxll, boolean internallyCreated)
msg
并将其放入container
。
如果msg
是msg
的一个实例,它直接添加,如果它是一个Icon,则创建一个JLabel来表示它,否则为该字符串创建一个JLabel,如果d
是一个Object [],该方法将被递归调用为孩子们
internallyCreated
是true,如果Objc是Component的一个实例,并且是通过这种方法在内部创建的(这仅用于正确设置hasCustomComponents只有在!internalCreated时)。
protected Object getMessage()
protected void addIcon(Container top)
getIcon
到top
。
这是从createMessageArea
消息
protected Icon getIcon()
getDefaultIcon
返回的默认图标。
protected Icon getIconForType(int messageType)
protected int getMaxCharactersPerLineCount()
protected void burstStringInto(Container c, String d, int maxll)
d
。
每个JLabel实例都添加到c
。
protected Container createSeparator()
protected Container createButtonArea()
getButtons
创建的。
protected void addButtonComponents(Container container, Object[] buttons, int initialIndex)
buttons
并将其添加到container
。
这与addMessageComponents不同,因为它将在buttons
上递归,如果按钮不是组件,它将创建一个JButton实例。
protected ActionListener createButtonActionListener(int buttonIndex)
protected Object[] getButtons()
protected boolean getSizeButtonsToSameWidth()
protected int getInitialValueIndex()
protected void resetInputValue()
public void selectInitialValue(JOptionPane op)
selectInitialValue
在
OptionPaneUI
public boolean containsCustomComponents(JOptionPane op)
containsCustomComponents
在
OptionPaneUI