com.jgoodies.looks.plastic
Class PlasticComboBoxUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ComboBoxUI
          extended by javax.swing.plaf.basic.BasicComboBoxUI
              extended by javax.swing.plaf.metal.MetalComboBoxUI
                  extended by com.jgoodies.looks.plastic.PlasticComboBoxUI

public class PlasticComboBoxUI
extends javax.swing.plaf.metal.MetalComboBoxUI

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 $
Author:
Karsten Lentzsch
See Also:
Options.COMBO_POPUP_PROTOTYPE_DISPLAY_VALUE_KEY

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.plaf.metal.MetalComboBoxUI
javax.swing.plaf.metal.MetalComboBoxUI.MetalComboBoxLayoutManager, javax.swing.plaf.metal.MetalComboBoxUI.MetalComboPopup, javax.swing.plaf.metal.MetalComboBoxUI.MetalPropertyChangeListener
 
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicComboBoxUI
javax.swing.plaf.basic.BasicComboBoxUI.ComboBoxLayoutManager, javax.swing.plaf.basic.BasicComboBoxUI.FocusHandler, javax.swing.plaf.basic.BasicComboBoxUI.ItemHandler, javax.swing.plaf.basic.BasicComboBoxUI.KeyHandler, javax.swing.plaf.basic.BasicComboBoxUI.ListDataHandler, javax.swing.plaf.basic.BasicComboBoxUI.PropertyChangeHandler
 
Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicComboBoxUI
arrowButton, cachedMinimumSize, comboBox, currentValuePane, editor, focusListener, hasFocus, isMinimumSizeDirty, itemListener, keyListener, listBox, listDataListener, popup, popupKeyListener, popupMouseListener, popupMouseMotionListener
 
Constructor Summary
PlasticComboBoxUI()
           
 
Method Summary
protected  javax.swing.JButton createArrowButton()
          Creates and answers the arrow button that is to be used in the combo box.
protected  javax.swing.ComboBoxEditor createEditor()
          Creates the editor that is to be used in editable combo boxes.
protected  java.awt.LayoutManager createLayoutManager()
          Creates a layout manager for managing the components which make up the combo box.
protected  javax.swing.plaf.basic.ComboPopup createPopup()
           
 java.beans.PropertyChangeListener createPropertyChangeListener()
           
protected  javax.swing.ListCellRenderer createRenderer()
          Creates the default renderer that will be used in a non-editiable combo box.
static javax.swing.plaf.ComponentUI createUI(javax.swing.JComponent b)
           
 java.awt.Dimension getMinimumSize(javax.swing.JComponent c)
          The minumum size is the size of the display area plus insets plus the button.
 java.awt.Dimension getPreferredSize(javax.swing.JComponent c)
          Delegates to #getMinimumSize(Component).
protected  void installListeners()
           
 void installUI(javax.swing.JComponent c)
           
protected  boolean isToolBarComboBox(javax.swing.JComponent c)
          Checks and answers if this combo is in a tool bar.
protected  java.awt.Rectangle rectangleForCurrentValue()
          Returns the area that is reserved for drawing the currently selected item.
protected  void uninstallListeners()
           
 void update(java.awt.Graphics g, javax.swing.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, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PlasticComboBoxUI

public PlasticComboBoxUI()
Method Detail

createUI

public static javax.swing.plaf.ComponentUI createUI(javax.swing.JComponent b)

installUI

public void installUI(javax.swing.JComponent c)
Overrides:
installUI in class javax.swing.plaf.basic.BasicComboBoxUI

installListeners

protected void installListeners()
Overrides:
installListeners in class javax.swing.plaf.basic.BasicComboBoxUI

uninstallListeners

protected void uninstallListeners()
Overrides:
uninstallListeners in class javax.swing.plaf.basic.BasicComboBoxUI

createArrowButton

protected javax.swing.JButton 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 class javax.swing.plaf.metal.MetalComboBoxUI

createEditor

protected javax.swing.ComboBoxEditor 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 class javax.swing.plaf.metal.MetalComboBoxUI

createLayoutManager

protected java.awt.LayoutManager 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 class javax.swing.plaf.metal.MetalComboBoxUI
Returns:
an instance of a layout manager

createPopup

protected javax.swing.plaf.basic.ComboPopup createPopup()
Overrides:
createPopup in class javax.swing.plaf.metal.MetalComboBoxUI

createRenderer

protected javax.swing.ListCellRenderer 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 with setRenderer.

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 class javax.swing.plaf.basic.BasicComboBoxUI
Returns:
a ListCellRender used for the combo box
See Also:
JComboBox.setRenderer(javax.swing.ListCellRenderer)

getMinimumSize

public java.awt.Dimension getMinimumSize(javax.swing.JComponent c)
The minumum size is the size of the display area plus insets plus the button.

Overrides:
getMinimumSize in class javax.swing.plaf.metal.MetalComboBoxUI

getPreferredSize

public java.awt.Dimension getPreferredSize(javax.swing.JComponent c)
Delegates to #getMinimumSize(Component). Overridden to return the same result in JDK 1.5 as in JDK 1.4.

Overrides:
getPreferredSize in class javax.swing.plaf.basic.BasicComboBoxUI

rectangleForCurrentValue

protected java.awt.Rectangle rectangleForCurrentValue()
Returns the area that is reserved for drawing the currently selected item.

Overrides:
rectangleForCurrentValue in class javax.swing.plaf.basic.BasicComboBoxUI

update

public void update(java.awt.Graphics g,
                   javax.swing.JComponent c)
Overrides:
update in class javax.swing.plaf.ComponentUI

isToolBarComboBox

protected boolean isToolBarComboBox(javax.swing.JComponent c)
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

createPropertyChangeListener

public java.beans.PropertyChangeListener createPropertyChangeListener()
Overrides:
createPropertyChangeListener in class javax.swing.plaf.metal.MetalComboBoxUI


Copyright © 2001-2012 JGoodies Karsten Lentzsch. All Rights Reserved.