MultiLookAndFeelpublic class MultiLookAndFeel extends LookAndFeel A multiplexing look and feel that allows more than one UI
to be associated with a component at the same time.
The primary look and feel is called
the default look and feel,
and the other look and feels are called auxiliary.
For further information, see
Using the
Multiplexing Look and Feel.
Warning:
Serialized objects of this class will not be compatible with
future Swing releases. The current serialization support is
appropriate for short term storage or RMI between applications running
the same version of Swing. As of 1.4, support for long term storage
of all JavaBeansTM
has been added to the java.beans package.
Please see {@link java.beans.XMLEncoder}. |
Methods Summary |
---|
public static javax.swing.plaf.ComponentUI | createUIs(javax.swing.plaf.ComponentUI mui, java.util.Vector uis, javax.swing.JComponent target)Creates the ComponentUI objects
required to present
the target component,
placing the objects in the uis vector and
returning the
ComponentUI object
that best represents the component's UI.
This method finds the ComponentUI objects
by invoking
getDefaults().getUI(target) on each
default and auxiliary look and feel currently in use.
The first UI object this method adds
to the uis vector
is for the default look and feel.
This method is invoked by the createUI method
of MultiXxxxUI classes.
ComponentUI ui;
// Make sure we can at least get the default UI
//
ui = UIManager.getDefaults().getUI(target);
if (ui != null) {
uis.addElement(ui);
LookAndFeel[] auxiliaryLookAndFeels;
auxiliaryLookAndFeels = UIManager.getAuxiliaryLookAndFeels();
if (auxiliaryLookAndFeels != null) {
for (int i = 0; i < auxiliaryLookAndFeels.length; i++) {
ui = auxiliaryLookAndFeels[i].getDefaults().getUI(target);
if (ui != null) {
uis.addElement(ui);
}
}
}
} else {
return null;
}
// Don't bother returning the multiplexing UI if all we did was
// get a UI from just the default look and feel.
//
if (uis.size() == 1) {
return (ComponentUI) uis.elementAt(0);
} else {
return mui;
}
| public javax.swing.UIDefaults | getDefaults()Creates, initializes, and returns
the look and feel specific defaults.
For this look and feel,
the defaults consist solely of
mappings of UI class IDs
(such as "ButtonUI")
to ComponentUI class names
(such as "javax.swing.plaf.multi.MultiButtonUI").
UIDefaults table = new MultiUIDefaults();
String packageName = "javax.swing.plaf.multi.Multi";
Object[] uiDefaults = {
"ButtonUI", packageName + "ButtonUI",
"CheckBoxMenuItemUI", packageName + "MenuItemUI",
"CheckBoxUI", packageName + "ButtonUI",
"ColorChooserUI", packageName + "ColorChooserUI",
"ComboBoxUI", packageName + "ComboBoxUI",
"DesktopIconUI", packageName + "DesktopIconUI",
"DesktopPaneUI", packageName + "DesktopPaneUI",
"EditorPaneUI", packageName + "TextUI",
"FileChooserUI", packageName + "FileChooserUI",
"FormattedTextFieldUI", packageName + "TextUI",
"InternalFrameUI", packageName + "InternalFrameUI",
"LabelUI", packageName + "LabelUI",
"ListUI", packageName + "ListUI",
"MenuBarUI", packageName + "MenuBarUI",
"MenuItemUI", packageName + "MenuItemUI",
"MenuUI", packageName + "MenuItemUI",
"OptionPaneUI", packageName + "OptionPaneUI",
"PanelUI", packageName + "PanelUI",
"PasswordFieldUI", packageName + "TextUI",
"PopupMenuSeparatorUI", packageName + "SeparatorUI",
"PopupMenuUI", packageName + "PopupMenuUI",
"ProgressBarUI", packageName + "ProgressBarUI",
"RadioButtonMenuItemUI", packageName + "MenuItemUI",
"RadioButtonUI", packageName + "ButtonUI",
"RootPaneUI", packageName + "RootPaneUI",
"ScrollBarUI", packageName + "ScrollBarUI",
"ScrollPaneUI", packageName + "ScrollPaneUI",
"SeparatorUI", packageName + "SeparatorUI",
"SliderUI", packageName + "SliderUI",
"SpinnerUI", packageName + "SpinnerUI",
"SplitPaneUI", packageName + "SplitPaneUI",
"TabbedPaneUI", packageName + "TabbedPaneUI",
"TableHeaderUI", packageName + "TableHeaderUI",
"TableUI", packageName + "TableUI",
"TextAreaUI", packageName + "TextUI",
"TextFieldUI", packageName + "TextUI",
"TextPaneUI", packageName + "TextUI",
"ToggleButtonUI", packageName + "ButtonUI",
"ToolBarSeparatorUI", packageName + "SeparatorUI",
"ToolBarUI", packageName + "ToolBarUI",
"ToolTipUI", packageName + "ToolTipUI",
"TreeUI", packageName + "TreeUI",
"ViewportUI", packageName + "ViewportUI",
};
table.putDefaults(uiDefaults);
return table;
| public java.lang.String | getDescription()Returns a one-line description of this look and feel.
return "Allows multiple UI instances per component instance";
| public java.lang.String | getID()Returns a string, suitable for use by applications/services,
that identifies this look and feel.
return "Multiplex";
| public java.lang.String | getName()Returns a string, suitable for use in menus,
that identifies this look and feel.
return "Multiplexing Look and Feel";
| public boolean | isNativeLookAndFeel()Returns false ;
this look and feel is not native to any platform.
return false;
| public boolean | isSupportedLookAndFeel()Returns true ;
every platform permits this look and feel.
return true;
| protected static javax.swing.plaf.ComponentUI[] | uisToArray(java.util.Vector uis)Creates an array,
populates it with UI objects from the passed-in vector,
and returns the array.
If uis is null,
this method returns an array with zero elements.
If uis is an empty vector,
this method returns null .
A run-time error occurs if any objects in the uis vector
are not of type ComponentUI .
if (uis == null) {
return new ComponentUI[0];
} else {
int count = uis.size();
if (count > 0) {
ComponentUI[] u = new ComponentUI[count];
for (int i = 0; i < count; i++) {
u[i] = (ComponentUI)uis.elementAt(i);
}
return u;
} else {
return null;
}
}
|
|