JIDE 3.4.0

com.jidesoft.swing
Class LabeledTextField

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by com.jidesoft.swing.LabeledTextField
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible
Direct Known Subclasses:
CreditCardTextField, PageNavigationField, QuickFilterField, ShortcutField

public class LabeledTextField
extends JPanel

LabeledTextField is a combo component which includes text field and an optional JLabel in the front and another optional AbstractButton at the end.

See Also:
Serialized Form

Nested Class Summary
static interface LabeledTextField.PopupMenuCustomizer
          The PopupMenuCustomizer for the context menu when clicking on the label/icon before the text field.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  AbstractButton _button
           
protected  KeyStroke _contextMenuKeyStroke
           
protected  LabeledTextField.PopupMenuCustomizer _customizer
           
protected  JLabel _hintLabel
           
protected  String _hintText
           
protected  Icon _icon
           
protected  JLabel _label
           
protected  String _labelText
           
protected  boolean _showHintTextWhenFocused
           
protected  JTextField _textField
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
LabeledTextField()
           
LabeledTextField(Icon icon)
           
LabeledTextField(Icon icon, String labelText)
           
 
Method Summary
protected  AbstractButton createButton()
          Creates the button that appears after the text field.
protected  JidePopupMenu createContextMenu()
          Creates a context menu.
protected  JLabel createLabel()
          Creates the label that appears before the text field.
protected  JTextField createTextField()
          Creates a text field.
 int getBaseline(int width, int height)
           
 AbstractButton getButton()
          Gets the AbstractButton that appears after text field.
 KeyStroke getContextMenuKeyStroke()
          Gets the keystroke that will bring up the context menu.
 String getHintText()
          Gets the hint text when the field is empty and not focused.
 Icon getIcon()
          Gets the icon that appears before the text field.
 JLabel getLabel()
          Gets the JLabel that appears before text field.
 String getLabelText()
          Gets the text that appears before the text field.
 LabeledTextField.PopupMenuCustomizer getPopupMenuCustomizer()
          Gets the PopupMenuCustomizer.
 String getText()
          Gets the text in this TextField.
 JTextField getTextField()
          Gets the actual text field.
protected  void initComponent()
           
protected  void initLayout(JLabel label, JTextField field, AbstractButton button)
          Setup the layout of the components.
 boolean isShowHintTextWhenFocused()
          Checks if the hint text will still be shown when the text field has focus.
 void setColumns(int columns)
          Sets the number of columns in this TextField, and then invalidate the layout.
 void setContextMenuKeyStroke(KeyStroke contextMenuKeyStroke)
          Changes the keystroke that brings up the context menu which is normally shown when user clicks on the label icon before the text field.
 void setEnabled(boolean enabled)
           
 void setHintText(String hintText)
          Sets the hint text.
 void setIcon(Icon icon)
          Sets the icon that appears before the text field.
 void setLabelText(String text)
          Sets the text that appears before the text field.
 void setPopupMenuCustomizer(LabeledTextField.PopupMenuCustomizer customizer)
          Sets the PopupMenuCustomizer.
 void setShowHintTextWhenFocused(boolean showHintTextWhenFocused)
          Sets the flag if the hint text will still be shown when the text field has focus.
 void setText(String text)
          Sets the text in this TextField.
protected  void showContextMenu()
          Shows the context menu.
 void updateUI()
           
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_textField

protected JTextField _textField

_label

protected JLabel _label

_button

protected AbstractButton _button

_labelText

protected String _labelText

_icon

protected Icon _icon

_hintText

protected String _hintText

_showHintTextWhenFocused

protected boolean _showHintTextWhenFocused

_hintLabel

protected JLabel _hintLabel

_customizer

protected LabeledTextField.PopupMenuCustomizer _customizer

_contextMenuKeyStroke

protected KeyStroke _contextMenuKeyStroke
Constructor Detail

LabeledTextField

public LabeledTextField()

LabeledTextField

public LabeledTextField(Icon icon)

LabeledTextField

public LabeledTextField(Icon icon,
                        String labelText)
Method Detail

initComponent

protected void initComponent()

showContextMenu

protected void showContextMenu()
Shows the context menu.


initLayout

protected void initLayout(JLabel label,
                          JTextField field,
                          AbstractButton button)
Setup the layout of the components. By default, we used a border layout with label first, field in the center and button last.

Parameters:
label - the label
field - the text field.
button - the button

isShowHintTextWhenFocused

public boolean isShowHintTextWhenFocused()
Checks if the hint text will still be shown when the text field has focus. By default, the hint text is only shown when the text field doesn't have focus.

Returns:
true or false.
Since:
3.3.6

setShowHintTextWhenFocused

public void setShowHintTextWhenFocused(boolean showHintTextWhenFocused)
Sets the flag if the hint text will still be shown when the text field has focus. By default, the hint text is only shown when the text field doesn't have focus. If you set it to true, the hint text will always be shown regardless if the text field has focus.

Parameters:
showHintTextWhenFocused - true or false.
Since:
3.3.6

createTextField

protected JTextField createTextField()
Creates a text field. By default it will return a JTextField with opaque set to false. Subclass can override this method to create their own text field such as JFormattedTextField.

Returns:
a text field.

createContextMenu

protected JidePopupMenu createContextMenu()
Creates a context menu. The context menu will be shown when user clicks on the label.

Returns:
a context menu.

updateUI

public void updateUI()
Overrides:
updateUI in class JPanel

createButton

protected AbstractButton createButton()
Creates the button that appears after the text field. By default it returns null so there is no button. Subclass can override it to create their own button. A typical usage of this is to create a browse button to browse a file or directory.

Returns:
the button.

createLabel

protected JLabel createLabel()
Creates the label that appears before the text field. By default, it only has a search icon.

Returns:
the label.

setLabelText

public void setLabelText(String text)
Sets the text that appears before the text field.

Parameters:
text - the text that appears before the text field.

getLabelText

public String getLabelText()
Gets the text that appears before the text field.

Returns:
the text that appears before the text field. By default it's null, meaning no text.

setIcon

public void setIcon(Icon icon)
Sets the icon that appears before the text field.

Parameters:
icon - the icon that appears before the text field.

getIcon

public Icon getIcon()
Gets the icon that appears before the text field.

Returns:
the icon that appears before the text field.

getLabel

public JLabel getLabel()
Gets the JLabel that appears before text field.

Returns:
the JLabel that appears before text field.

getButton

public AbstractButton getButton()
Gets the AbstractButton that appears after text field.

Returns:
the AbstractButton that appears after text field.

setColumns

public void setColumns(int columns)
Sets the number of columns in this TextField, and then invalidate the layout.

Parameters:
columns - the number of columns for this text field.

setText

public void setText(String text)
Sets the text in this TextField.

Parameters:
text - the new text in this TextField.

getText

public String getText()
Gets the text in this TextField.

Returns:
the text in this TextField.

getTextField

public JTextField getTextField()
Gets the actual text field.

Returns:
the actual text field.

setEnabled

public void setEnabled(boolean enabled)
Overrides:
setEnabled in class JComponent

getBaseline

public int getBaseline(int width,
                       int height)
Overrides:
getBaseline in class JComponent

getHintText

public String getHintText()
Gets the hint text when the field is empty and not focused.

Returns:
the hint text.

setHintText

public void setHintText(String hintText)
Sets the hint text.

Parameters:
hintText - the new hint text.

getPopupMenuCustomizer

public LabeledTextField.PopupMenuCustomizer getPopupMenuCustomizer()
Gets the PopupMenuCustomizer.

Returns:
the PopupMenuCustomizer.

setPopupMenuCustomizer

public void setPopupMenuCustomizer(LabeledTextField.PopupMenuCustomizer customizer)
Sets the PopupMenuCustomizer. PopupMenuCustomizer can be used to do customize the popup menu for the LabeledTextField.

PopupMenuCustomizer has a customize method. The popup menu of this menu will be passed in. You can add/remove/change the menu items in customize method. For example,

 field.setPopupMenuCustomzier(new LabeledTextField.PopupMenuCustomizer() {
     void customize(LabledTextField field, JPopupMenu menu) {
         menu.removeAll();
         menu.add(new JMenuItem("..."));
         menu.add(new JMenuItem("..."));
     }
 }
 
If the menu is never used, the two add methods will never be called thus improve the performance.

Parameters:
customizer - the PopupMenuCustomizer

getContextMenuKeyStroke

public KeyStroke getContextMenuKeyStroke()
Gets the keystroke that will bring up the context menu. If you never set it before, it will return SHIFT-F10 for operating systems other than Mac OS X.

Returns:
the keystroke that will bring up the context menu.

setContextMenuKeyStroke

public void setContextMenuKeyStroke(KeyStroke contextMenuKeyStroke)
Changes the keystroke that brings up the context menu which is normally shown when user clicks on the label icon before the text field.

Parameters:
contextMenuKeyStroke - the new keystroke to bring up the context menu.

JIDE 3.4.0