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 class
This layout manager handles the 'standard' layout of combo boxes.private static final class
Differs from the BasicComboPopup in that it uses the standard popmenu border and honors an optional popup prototype display value.private final class
Overriden to use PlasticComboBoxButton instead of a MetalComboBoxButton.private final class
Listens 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.MetalPropertyChangeListener
Nested 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 String
private static final JTextField
Used to determine the minimum height of a text field, which in turn is used to answer the combobox's minimum height.private static Class
Different Plastic L&fs may need different phantom UIs.private PropertyChangeListener
private boolean
Fields 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 JButton
Creates and answers the arrow button that is to be used in the combo box.protected ComboBoxEditor
Creates the editor that is to be used in editable combo boxes.protected LayoutManager
Creates a layout manager for managing the components which make up the combo box.protected ComboPopup
protected ListCellRenderer
Creates the default renderer that will be used in a non-editiable combo box.static ComponentUI
private static void
Ensures that the phantom text field has a Plastic text field UI.(package private) static int
Computes 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 void
void
private boolean
Checks and answers if this UI's combo has a client property that indicates that the combo is used as a table cell editor.protected boolean
Checks and answers if this combo is in a tool bar.protected Rectangle
Returns the area that is reserved for drawing the currently selected item.protected void
void
update
(Graphics g, JComponent c) Methods inherited from class javax.swing.plaf.metal.MetalComboBoxUI
configureEditor, editablePropertyChanged, getBaseline, layoutComboBox, paint, paintCurrentValue, paintCurrentValueBackground, removeListeners, unconfigureEditor
Methods 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, uninstallUI
Methods 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:
installUI
in classBasicComboBoxUI
-
installListeners
protected void installListeners()- Overrides:
installListeners
in classBasicComboBoxUI
-
uninstallListeners
protected void uninstallListeners()- Overrides:
uninstallListeners
in 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:
createArrowButton
in 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:
createEditor
in 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:
createLayoutManager
in classMetalComboBoxUI
- Returns:
- an instance of a layout manager
-
createPopup
- Overrides:
createPopup
in 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:
createRenderer
in classBasicComboBoxUI
- Returns:
- a
ListCellRender
used for the combo box - See Also:
-
getMinimumSize
The minumum size is the size of the display area plus insets plus the button.- Overrides:
getMinimumSize
in classMetalComboBoxUI
-
getPreferredSize
Delegates to #getMinimumSize(Component). Overridden to return the same result in JDK 1.5 as in JDK 1.4.- Overrides:
getPreferredSize
in classBasicComboBoxUI
-
rectangleForCurrentValue
Returns the area that is reserved for drawing the currently selected item.- Overrides:
rectangleForCurrentValue
in classBasicComboBoxUI
-
update
- Overrides:
update
in 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:
true
if the table cell editor client property is set toBoolean.TRUE
,false
otherwise
-
createPropertyChangeListener
- Overrides:
createPropertyChangeListener
in classMetalComboBoxUI
-