Package com.jidesoft.swing
Class LabeledTextField
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- com.jidesoft.swing.LabeledTextField
-
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,javax.accessibility.Accessible
public class LabeledTextField extends javax.swing.JPanelLabeledTextFieldis 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
Nested Classes Modifier and Type Class Description static interfaceLabeledTextField.PopupMenuCustomizerThe PopupMenuCustomizer for the context menu when clicking on the label/icon before the text field.-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description protected javax.swing.AbstractButton_buttonprotected javax.swing.KeyStroke_contextMenuKeyStrokeprotected LabeledTextField.PopupMenuCustomizer_customizerprotected javax.swing.JLabel_hintLabelprotected java.lang.String_hintTextprotected javax.swing.Icon_iconprotected javax.swing.JLabel_labelprotected java.lang.String_labelTextprotected boolean_showHintTextWhenFocusedprotected javax.swing.JTextField_textField-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description LabeledTextField()LabeledTextField(javax.swing.Icon icon)LabeledTextField(javax.swing.Icon icon, java.lang.String labelText)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.awt.PointcalculateContextMenuLocation()Calculates the locatioin of the context menu.protected javax.swing.AbstractButtoncreateButton()Creates the button that appears after the text field.protected JidePopupMenucreateContextMenu()Creates a context menu.protected javax.swing.JLabelcreateLabel()Creates the label that appears before the text field.protected javax.swing.JTextFieldcreateTextField()Creates a text field.protected voidcustomizePopupMenu(javax.swing.JPopupMenu menu)Customizes the popup menu.intgetBaseline(int width, int height)javax.swing.AbstractButtongetButton()Gets the AbstractButton that appears after text field.javax.swing.KeyStrokegetContextMenuKeyStroke()Gets the keystroke that will bring up the context menu.java.lang.StringgetHintText()Gets the hint text when the field is empty and not focused.javax.swing.IcongetIcon()Gets the icon that appears before the text field.javax.swing.JLabelgetLabel()Gets the JLabel that appears before text field.java.lang.StringgetLabelText()Gets the text that appears before the text field.LabeledTextField.PopupMenuCustomizergetPopupMenuCustomizer()Gets the PopupMenuCustomizer.java.lang.StringgetText()Gets the text in this TextField.javax.swing.JTextFieldgetTextField()Gets the actual text field.protected voidinitComponent()protected voidinitLayout(javax.swing.JLabel label, javax.swing.JTextField field, javax.swing.AbstractButton button)Setup the layout of the components.booleanisShowHintTextWhenFocused()Checks if the hint text will still be shown when the text field has focus.voidsetColumns(int columns)Sets the number of columns in this TextField, and then invalidate the layout.voidsetContextMenuKeyStroke(javax.swing.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.voidsetEnabled(boolean enabled)voidsetHintText(java.lang.String hintText)Sets the hint text.voidsetIcon(javax.swing.Icon icon)Sets the icon that appears before the text field.voidsetLabelText(java.lang.String text)Sets the text that appears before the text field.voidsetPopupMenuCustomizer(LabeledTextField.PopupMenuCustomizer customizer)Sets the PopupMenuCustomizer.voidsetShowHintTextWhenFocused(boolean showHintTextWhenFocused)Sets the flag if the hint text will still be shown when the text field has focus.voidsetText(java.lang.String text)Sets the text in this TextField.protected voidshowContextMenu()Shows the context menu.voidupdateUI()-
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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
_textField
protected javax.swing.JTextField _textField
-
_label
protected javax.swing.JLabel _label
-
_button
protected javax.swing.AbstractButton _button
-
_labelText
protected java.lang.String _labelText
-
_icon
protected javax.swing.Icon _icon
-
_hintText
protected java.lang.String _hintText
-
_showHintTextWhenFocused
protected boolean _showHintTextWhenFocused
-
_hintLabel
protected javax.swing.JLabel _hintLabel
-
_customizer
protected LabeledTextField.PopupMenuCustomizer _customizer
-
_contextMenuKeyStroke
protected javax.swing.KeyStroke _contextMenuKeyStroke
-
-
Method Detail
-
initComponent
protected void initComponent()
-
showContextMenu
protected void showContextMenu()
Shows the context menu.
-
calculateContextMenuLocation
protected java.awt.Point calculateContextMenuLocation()
Calculates the locatioin of the context menu.- Returns:
- the upper-left corner location.
- Since:
- 3.4.2
-
customizePopupMenu
protected void customizePopupMenu(javax.swing.JPopupMenu menu)
Customizes the popup menu.- Parameters:
menu- the menu to customize- Since:
- 3.4.1
-
initLayout
protected void initLayout(javax.swing.JLabel label, javax.swing.JTextField field, javax.swing.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 labelfield- 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 javax.swing.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:
updateUIin classjavax.swing.JPanel
-
createButton
protected javax.swing.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 javax.swing.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(java.lang.String text)
Sets the text that appears before the text field.- Parameters:
text- the text that appears before the text field.
-
getLabelText
public java.lang.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(javax.swing.Icon icon)
Sets the icon that appears before the text field.- Parameters:
icon- the icon that appears before the text field.
-
getIcon
public javax.swing.Icon getIcon()
Gets the icon that appears before the text field.- Returns:
- the icon that appears before the text field.
-
getLabel
public javax.swing.JLabel getLabel()
Gets the JLabel that appears before text field.- Returns:
- the JLabel that appears before text field.
-
getButton
public javax.swing.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(java.lang.String text)
Sets the text in this TextField.- Parameters:
text- the new text in this TextField.
-
getText
public java.lang.String getText()
Gets the text in this TextField.- Returns:
- the text in this TextField.
-
getTextField
public javax.swing.JTextField getTextField()
Gets the actual text field.- Returns:
- the actual text field.
-
setEnabled
public void setEnabled(boolean enabled)
- Overrides:
setEnabledin classjavax.swing.JComponent
-
getBaseline
public int getBaseline(int width, int height)- Overrides:
getBaselinein classjavax.swing.JComponent
-
getHintText
public java.lang.String getHintText()
Gets the hint text when the field is empty and not focused.- Returns:
- the hint text.
-
setHintText
public void setHintText(java.lang.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 theLabeledTextField. 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,If the menu is never used, the two add methods will never be called thus improve the performance.field.setPopupMenuCustomizer(new LabeledTextField.PopupMenuCustomizer() { void customize(LabeledTextField field, JPopupMenu menu) { menu.removeAll(); menu.add(new JMenuItem("...")); menu.add(new JMenuItem("...")); } }- Parameters:
customizer- the PopupMenuCustomizer
-
getContextMenuKeyStroke
public javax.swing.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(javax.swing.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.
-
-