Package com.jgoodies.looks.plastic
Class PlasticComboBoxUI
java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.ComboBoxUI
javax.swing.plaf.basic.BasicComboBoxUI
javax.swing.plaf.metal.MetalComboBoxUI
com.jgoodies.looks.plastic.PlasticComboBoxUI
The JGoodies Plastic Look and Feel implementation of
ComboBoxUI.
Has the same height as text fields - unless you change the renderer.Also, this class offers to use the combo's popup prototype display value to compute the popup menu width. This is an optional feature of the JGoodies Plastic L&fs implemented via a client property key.
- Version:
- $Revision: 1.19 $
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate final classThis layout manager handles the 'standard' layout of combo boxes.private static final classDiffers from the BasicComboPopup in that it uses the standard popmenu border and honors an optional popup prototype display value.private final classOverriden to use PlasticComboBoxButton instead of a MetalComboBoxButton.private final classListens to changes in the table cell editor client property and updates the default editor - if any - to use the correct insets for this case.Nested classes/interfaces inherited from class javax.swing.plaf.metal.MetalComboBoxUI
MetalComboBoxUI.MetalComboBoxLayoutManager, MetalComboBoxUI.MetalComboPopup, MetalComboBoxUI.MetalPropertyChangeListenerNested classes/interfaces inherited from class javax.swing.plaf.basic.BasicComboBoxUI
BasicComboBoxUI.ComboBoxLayoutManager, BasicComboBoxUI.FocusHandler, BasicComboBoxUI.ItemHandler, BasicComboBoxUI.KeyHandler, BasicComboBoxUI.ListDataHandler, BasicComboBoxUI.PropertyChangeHandler -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final Stringprivate static final JTextFieldUsed to determine the minimum height of a text field, which in turn is used to answer the combobox's minimum height.private static ClassDifferent Plastic L&fs may need different phantom UIs.private PropertyChangeListenerprivate booleanFields inherited from class javax.swing.plaf.basic.BasicComboBoxUI
arrowButton, cachedMinimumSize, comboBox, currentValuePane, editor, focusListener, hasFocus, isMinimumSizeDirty, itemListener, keyListener, listBox, listDataListener, padding, popup, popupKeyListener, popupMouseListener, popupMouseMotionListener, squareButton -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected JButtonCreates and answers the arrow button that is to be used in the combo box.protected ComboBoxEditorCreates the editor that is to be used in editable combo boxes.protected LayoutManagerCreates a layout manager for managing the components which make up the combo box.protected ComboPopupprotected ListCellRendererCreates the default renderer that will be used in a non-editiable combo box.static ComponentUIprivate static voidEnsures that the phantom text field has a Plastic text field UI.(package private) static intComputes and returns the width of the arrow button in editable state.The minumum size is the size of the display area plus insets plus the button.Delegates to #getMinimumSize(Component).protected voidvoidprivate booleanChecks and answers if this UI's combo has a client property that indicates that the combo is used as a table cell editor.protected booleanChecks and answers if this combo is in a tool bar.protected RectangleReturns the area that is reserved for drawing the currently selected item.protected voidvoidupdate(Graphics g, JComponent c) Methods inherited from class javax.swing.plaf.metal.MetalComboBoxUI
configureEditor, editablePropertyChanged, getBaseline, layoutComboBox, paint, paintCurrentValue, paintCurrentValueBackground, removeListeners, unconfigureEditorMethods inherited from class javax.swing.plaf.basic.BasicComboBoxUI
addEditor, configureArrowButton, createFocusListener, createItemListener, createKeyListener, createListDataListener, getAccessibleChild, getAccessibleChildrenCount, getBaselineResizeBehavior, getDefaultSize, getDisplaySize, getInsets, getMaximumSize, getSizeForComponent, installComponents, installDefaults, installKeyboardActions, isFocusTraversable, isNavigationKey, isPopupVisible, removeEditor, selectNextPossibleValue, selectPreviousPossibleValue, setPopupVisible, toggleOpenClose, unconfigureArrowButton, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallUIMethods inherited from class javax.swing.plaf.ComponentUI
contains
-
Field Details
-
CELL_EDITOR_KEY
- See Also:
-
PHANTOM
Used to determine the minimum height of a text field, which in turn is used to answer the combobox's minimum height. -
phantomLafClass
Different Plastic L&fs may need different phantom UIs. Therefore we store the LookAndFeel class and update the phantom UI whenever the Look&Feel changes. -
tableCellEditor
private boolean tableCellEditor -
propertyChangeListener
-
-
Constructor Details
-
PlasticComboBoxUI
public PlasticComboBoxUI()
-
-
Method Details
-
createUI
-
ensurePhantomHasPlasticUI
private static void ensurePhantomHasPlasticUI()Ensures that the phantom text field has a Plastic text field UI. -
installUI
- Overrides:
installUIin classBasicComboBoxUI
-
installListeners
protected void installListeners()- Overrides:
installListenersin classBasicComboBoxUI
-
uninstallListeners
protected void uninstallListeners()- Overrides:
uninstallListenersin classBasicComboBoxUI
-
createArrowButton
Creates and answers the arrow button that is to be used in the combo box.Overridden to use a button that can have a pseudo 3D effect.
- Overrides:
createArrowButtonin classMetalComboBoxUI
-
createEditor
Creates the editor that is to be used in editable combo boxes. This method only gets called if a custom editor has not already been installed in the JComboBox.- Overrides:
createEditorin classMetalComboBoxUI
-
createLayoutManager
Creates a layout manager for managing the components which make up the combo box.Overriden to use a layout that has a fixed width arrow button.
- Overrides:
createLayoutManagerin classMetalComboBoxUI- Returns:
- an instance of a layout manager
-
createPopup
- Overrides:
createPopupin classMetalComboBoxUI
-
createRenderer
Creates the default renderer that will be used in a non-editiable combo box. A default renderer will used only if a renderer has not been explicitly set withsetRenderer.This method differs from the superclass implementation in that it uses an empty border with wider left and right margins of 2 pixels instead of 1.
- Overrides:
createRendererin classBasicComboBoxUI- Returns:
- a
ListCellRenderused for the combo box - See Also:
-
getMinimumSize
The minumum size is the size of the display area plus insets plus the button.- Overrides:
getMinimumSizein classMetalComboBoxUI
-
getPreferredSize
Delegates to #getMinimumSize(Component). Overridden to return the same result in JDK 1.5 as in JDK 1.4.- Overrides:
getPreferredSizein classBasicComboBoxUI
-
rectangleForCurrentValue
Returns the area that is reserved for drawing the currently selected item.- Overrides:
rectangleForCurrentValuein classBasicComboBoxUI
-
update
- Overrides:
updatein classComponentUI
-
isToolBarComboBox
Checks and answers if this combo is in a tool bar.- Parameters:
c- the component to check- Returns:
- true if in tool bar, false otherwise
-
getEditableButtonWidth
static int getEditableButtonWidth()Computes and returns the width of the arrow button in editable state. The perceived width shall be equal to the width of a scroll bar. Therefore we subtract a pixel that is perceived as part of the arrow button but that is painted by the editor's border.- Returns:
- the width of the arrow button in editable state
-
isTableCellEditor
private boolean isTableCellEditor()Checks and answers if this UI's combo has a client property that indicates that the combo is used as a table cell editor.- Returns:
trueif the table cell editor client property is set toBoolean.TRUE,falseotherwise
-
createPropertyChangeListener
- Overrides:
createPropertyChangeListenerin classMetalComboBoxUI
-