- 所有已实现的接口:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,Scrollable
,SwingConstants
JTextField
是一个允许编辑单行文本的轻量级组件。有关使用文本字段的信息和示例,请参阅 The Java Tutorial. 中的 如何使用文本字段
JTextField
旨在与 java.awt.TextField
源代码兼容,这样做是合理的。该组件具有 java.awt.TextField
类中没有的功能。应该咨询超类以获得额外的能力。
JTextField
有一个方法来建立用作被触发的动作事件的命令字符串的字符串。 java.awt.TextField
使用字段的文本作为 ActionEvent
的命令字符串。如果不是null
,JTextField
将使用通过setActionCommand
方法设置的命令字符串,否则它将使用字段的文本作为与java.awt.TextField
的兼容性。
不直接提供方法 setEchoChar
和 getEchoChar
以避免可插入外观的新实现无意中暴露密码字符。为了提供类似密码的服务,一个单独的类 JPasswordField
扩展了 JTextField
以提供具有独立可插入外观的服务。
可以通过为 TextEvent
添加 TextListener
来监视 java.awt.TextField
的变化。在基于 JTextComponent
的组件中,更改从模型通过 DocumentEvent
广播到 DocumentListeners
。 DocumentEvent
给出更改的位置和更改的类型(如果需要)。代码片段可能类似于:
DocumentListener myListener = ??;
JTextField myArea = ??;
myArea.getDocument().addDocumentListener(myListener);
JTextField
的水平对齐可以设置为左对齐、前导对齐、居中、右对齐或尾对齐。如果字段文本所需的大小小于分配给它的大小,则右/尾对齐很有用。这是由 setHorizontalAlignment
和 getHorizontalAlignment
方法确定的。默认是前导对齐。
文本字段如何使用 VK_ENTER 事件取决于文本字段是否有任何动作监听。如果是这样,则 VK_ENTER 导致监听获得 ActionEvent,并且 VK_ENTER 事件被消耗。这与 AWT 文本字段处理 VK_ENTER 事件的方式兼容。如果文本字段没有动作监听,则从 v 1.3 开始,不会使用 VK_ENTER 事件。相反,处理祖先组件的绑定,这使 JFC/Swing 的默认按钮功能能够工作。
通过扩展模型和更改提供的默认模型,可以轻松创建自定义字段。例如,以下代码段将创建一个仅包含大写字符的字段。即使从剪贴板粘贴文本或通过编程更改文本,它也能正常工作。
public class UpperCaseField extends JTextField {
public UpperCaseField(int cols) {
super(cols);
}
protected Document createDefaultModel() {
return new UpperCaseDocument();
}
static class UpperCaseDocument extends PlainDocument {
public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException {
if (str == null) {
return;
}
char[] upper = str.toCharArray();
for (int i = 0; i < upper.length; i++) {
upper[i] = Character.toUpperCase(upper[i]);
}
super.insertString(offs, new String(upper), a);
}
}
}
Warning: Swing 不是线程安全的。有关详细信息,请参阅 Swing 的线程策略。
Warning: 此类的序列化对象将与未来的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,对所有 JavaBeans 的长期存储的支持已添加到 java.beans
包中。请参阅 XMLEncoder
。
- 自从:
- 1.2
- 参见:
-
内部类总结
内部类在类 javax.swing.text.JTextComponent 中声明的嵌套类/接口
JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBinding
在类 javax.swing.JComponent 中声明的嵌套类/接口
JComponent.AccessibleJComponent
在类 java.awt.Container 中声明的嵌套类/接口
Container.AccessibleAWTContainer
-
字段摘要
字段在类 javax.swing.text.JTextComponent 中声明的字段
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
在类 javax.swing.JComponent 中声明的字段
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
在类 java.awt.Component 中声明的字段
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
在接口 java.awt.image.ImageObserver 中声明的字段
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
在接口 javax.swing.SwingConstants 中声明的字段
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
-
构造方法总结
构造方法构造方法描述构造一个新的TextField
.JTextField
(int columns) 构造一个具有指定列数的新空TextField
。JTextField
(String text) 构造一个用指定文本初始化的新TextField
。JTextField
(String text, int columns) 构造一个用指定文本和列初始化的新TextField
。JTextField
(Document doc, String text, int columns) 构造一个新的JTextField
,它使用给定的文本存储模型和给定的列数。 -
方法总结
修饰符和类型方法描述protected void
actionPropertyChanged
(Action action, String propertyName) 更新文本字段的状态以响应关联操作中的属性更改。void
添加指定的动作监听以接收来自此文本字段的动作事件。protected void
设置此文本字段的属性以匹配指定的Action
中的属性。protected PropertyChangeListener
创建并返回一个PropertyChangeListener
负责监听来自指定Action
的更改并更新相应的属性。protected Document
如果未明确给出,则创建要在构造时使用的模型的默认实现。protected void
通知所有已注册对此事件类型的通知感兴趣的监听。获取与此JTextField
关联的AccessibleContext
。返回当前为此ActionEvent
源设置的Action
,如果未设置Action
,则返回null
。返回使用 addActionListener() 添加到此 JTextField 的所有ActionListener
的数组。Action[]
获取编辑器的命令列表。int
返回此TextField
中的列数。protected int
返回列宽。int
返回文本的水平对齐方式。获取文本字段的可见性。返回此TextField
所需的首选大小Dimensions
。int
获取滚动偏移量,以像素为单位。获取 UI 的类 ID。boolean
来自文本字段本身的对revalidate
的调用将通过验证文本字段来处理,除非文本字段包含在JViewport
中,在这种情况下返回 false。protected String
返回此JTextField
的字符串表示形式void
通过将事件分配给任何已注册的ActionListener
对象来处理在此文本字段上发生的动作事件。void
删除指定的动作监听,以便它不再接收来自该文本字段的动作事件。void
向左或向右滚动字段。void
为ActionEvent
源设置Action
。void
setActionCommand
(String command) 设置用于动作事件的命令字符串。void
setColumns
(int columns) 在此TextField
中设置列数,然后使布局无效。void
setDocument
(Document doc) 将编辑器与文本文档相关联。void
设置当前字体。void
setHorizontalAlignment
(int alignment) 设置文本的水平对齐方式。void
setScrollOffset
(int scrollOffset) 设置滚动偏移量,以像素为单位。在类 javax.swing.text.JTextComponent 中声明的方法
addCaretListener, addKeymap, copy, cut, fireCaretUpdate, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, modelToView2D, moveCaretPosition, paste, print, print, print, read, removeCaretListener, removeKeymap, replaceSelection, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, updateUI, viewToModel, viewToModel2D, write
在类 javax.swing.JComponent 中声明的方法
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, 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, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
在类 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
在类 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, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, 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
-
字段详细信息
-
notifyAction
发送字段内容已被接受的通知的操作名称。通常这是绑定到回车符。- 参见:
-
-
构造方法详细信息
-
JTextField
public JTextField()构造一个新的TextField
。创建默认模型,初始字符串为null
,列数设置为 0。 -
JTextField
构造一个用指定文本初始化的新TextField
。创建默认模型,列数为 0。- 参数:
text
- 要显示的文本,或null
-
JTextField
public JTextField(int columns) 构造一个具有指定列数的新空TextField
。创建默认模型并将初始字符串设置为null
。- 参数:
columns
- 用于计算首选宽度的列数;如果列设置为零,则首选宽度将是组件实现的自然结果
-
JTextField
构造一个用指定文本和列初始化的新TextField
。创建默认模型。- 参数:
text
- 要显示的文本,或null
columns
- 用于计算首选宽度的列数;如果列设置为零,则首选宽度将是组件实现的自然结果
-
JTextField
构造一个新的JTextField
,它使用给定的文本存储模型和给定的列数。这是其他构造函数通过的构造函数。如果文档是null
,则会创建一个默认模型。- 参数:
doc
- 要使用的文本存储;如果这是null
,将通过调用createDefaultModel
方法提供默认值text
- 要显示的初始字符串,或null
columns
- 用于计算首选宽度的列数 >= 0;如果columns
设置为零,则首选宽度将是组件实现的自然结果- 抛出:
IllegalArgumentException
- 如果columns
< 0
-
-
方法详情
-
getUIClassID
获取 UI 的类 ID。- 重写:
getUIClassID
在类JComponent
中- 返回:
- 字符串“TextFieldUI”
- 参见:
-
setDocument
@BeanProperty (expert =true, description ="the text document model") public void setDocument(Document doc) 将编辑器与文本文档相关联。当前注册的工厂用于为文档构建视图,在重新生效后由编辑器显示。 PropertyChange 事件(“文档”)被传播到每个监听。- 重写:
setDocument
在类JTextComponent
中- 参数:
doc
- 要显示/编辑的文档- 参见:
-
isValidateRoot
public boolean isValidateRoot()来自文本字段本身的对revalidate
的调用将通过验证文本字段来处理,除非文本字段包含在JViewport
中,在这种情况下返回 false。- 重写:
isValidateRoot
在类JComponent
中- 返回:
-
如果此文本字段的父项是
JViewPort
则返回 false,否则返回 true - 参见:
-
getHorizontalAlignment
public int getHorizontalAlignment()返回文本的水平对齐方式。有效键是:JTextField.LEFT
JTextField.CENTER
JTextField.RIGHT
JTextField.LEADING
JTextField.TRAILING
- 返回:
- 水平对齐
-
setHorizontalAlignment
@BeanProperty (preferred =true, enumerationValues ={"JTextField.LEFT","JTextField.CENTER","JTextField.RIGHT","JTextField.LEADING","JTextField.TRAILING"}, description ="Set the field alignment to LEFT, CENTER, RIGHT, LEADING (the default) or TRAILING") public void setHorizontalAlignment(int alignment) 设置文本的水平对齐方式。有效键是:JTextField.LEFT
JTextField.CENTER
JTextField.RIGHT
JTextField.LEADING
JTextField.TRAILING
invalidate
和repaint
在设置对齐时调用,并触发PropertyChange
事件(“horizontalAlignment”)。- 参数:
alignment
- 对齐- 抛出:
IllegalArgumentException
- 如果alignment
不是有效密钥
-
createDefaultModel
如果未明确给出,则创建要在构造时使用的模型的默认实现。PlainDocument
的一个实例被返回。- 返回:
- 默认模型实现
-
getColumns
public int getColumns()返回此TextField
中的列数。- 返回:
- 列数 >= 0
-
setColumns
@BeanProperty (bound =false, description ="the number of columns preferred for display") public void setColumns(int columns) 在此TextField
中设置列数,然后使布局无效。- 参数:
columns
- 列数 >= 0- 抛出:
IllegalArgumentException
- 如果columns
小于 0
-
getColumnWidth
protected int getColumnWidth()返回列宽。对于某些字体,列的含义可以被认为是一个相当弱的概念。此方法用于定义列的宽度。默认情况下,这被定义为所用字体的字符 m 的宽度。这个方法可以重新定义为一些替代量- 返回:
- 列宽 >= 1
-
getPreferredSize
返回此TextField
所需的首选大小Dimensions
。如果设置了非零列数,则宽度设置为列数乘以列宽。- 重写:
getPreferredSize
在类JComponent
中- 返回:
- 此文本字段的尺寸
- 参见:
-
setFont
设置当前字体。这将删除缓存的行高和列宽,以便反映新字体。revalidate
在设置字体后被调用。- 重写:
setFont
在类JComponent
中- 参数:
f
- 新字体- 参见:
-
addActionListener
添加指定的动作监听以接收来自此文本字段的动作事件。- 参数:
l
- 要添加的动作监听器
-
removeActionListener
删除指定的动作监听,以便它不再接收来自该文本字段的动作事件。- 参数:
l
- 要删除的动作监听器
-
getActionListeners
返回使用 addActionListener() 添加到此 JTextField 的所有ActionListener
的数组。- 返回:
-
添加所有
ActionListener
或如果未添加任何监听器,则为空数组 - 自从:
- 1.4
-
fireActionPerformed
protected void fireActionPerformed()通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是延迟创建的。监听列表按从后到前的顺序进行处理。- 参见:
-
setActionCommand
设置用于动作事件的命令字符串。- 参数:
command
- 命令字符串
-
setAction
@BeanProperty (visualUpdate =true, description ="the Action instance connected with this ActionEvent source") public void setAction(Action a) 为ActionEvent
源设置Action
。新的Action
取代了之前设置的任何Action
但不影响ActionListeners
独立添加addActionListener
。如果Action
已经是ActionEvent
源的已注册ActionListener
,则不会重新注册。设置
Action
会导致立即更改 摇摆组件支持Action
中描述的所有属性。随后,文本字段的属性会随着Action
的属性更改而自动更新。此方法使用其他三种方法来设置和帮助跟踪
Action
的属性值。它使用configurePropertiesFromAction
方法立即更改文本字段的属性。为了跟踪Action
的属性值的变化,此方法注册了createActionPropertyChangeListener
返回的PropertyChangeListener
。当Action
中的属性更改时,默认PropertyChangeListener
调用actionPropertyChanged
方法。- 参数:
a
-Action
为JTextField
或null
- 自从:
- 1.3
- 参见:
-
getAction
返回当前为此ActionEvent
源设置的Action
,如果未设置Action
,则返回null
。- 返回:
-
这个
ActionEvent
来源的Action
,或null
- 自从:
- 1.3
- 参见:
-
configurePropertiesFromAction
设置此文本字段的属性以匹配指定的Action
中的属性。有关此设置的属性的更多详细信息,请参阅 摇摆组件支持Action
。- 参数:
a
- 从中获取属性的Action
,或null
- 自从:
- 1.3
- 参见:
-
actionPropertyChanged
更新文本字段的状态以响应关联操作中的属性更改。从createActionPropertyChangeListener
返回的PropertyChangeListener
调用此方法。子类通常不需要调用它。支持额外Action
属性的子类应该覆盖这个和configurePropertiesFromAction
。有关此方法设置的属性列表,请参阅 摇摆组件支持
Action
中的表格。- 参数:
action
- 与此文本字段关联的Action
propertyName
- 更改的属性的名称- 自从:
- 1.6
- 参见:
-
createActionPropertyChangeListener
创建并返回一个PropertyChangeListener
负责监听来自指定Action
的更改并更新相应的属性。警告:如果您将其子类化,则不要创建匿名内部类。如果你这样做,文本字段的生命周期将与
Action
的生命周期相关联。- 参数:
a
- 文本框的动作- 返回:
-
一个
PropertyChangeListener
负责监听来自指定Action
的变化并更新适当的属性 - 自从:
- 1.3
- 参见:
-
getActions
获取编辑器的命令列表。这是由编辑器本身支持的命令集合扩充的插件 UI 支持的命令列表。这些对于绑定到事件很有用,例如在键盘map中。- 重写:
getActions
在类JTextComponent
中- 返回:
- 命令列表
-
postActionEvent
public void postActionEvent()通过将事件分配给任何已注册的ActionListener
对象来处理在此文本字段上发生的动作事件。这通常由在文本字段中注册的控制器调用。 -
getHorizontalVisibility
获取文本字段的可见性。如果字段的大小大于分配给该字段的区域,则可以调整它以更改可见区域的位置。字段外观实现管理
BoundedRangeModel
上的最小值、最大值和范围属性的值。- 返回:
- 能见度
- 参见:
-
getScrollOffset
public int getScrollOffset()获取滚动偏移量,以像素为单位。- 返回:
- offset >= 0
-
setScrollOffset
public void setScrollOffset(int scrollOffset) 设置滚动偏移量,以像素为单位。- 参数:
scrollOffset
- 偏移量 >= 0
-
scrollRectToVisible
向左或向右滚动字段。- 重写:
scrollRectToVisible
在类JComponent
中- 参数:
r
- 要滚动的区域- 参见:
-
paramString
返回此JTextField
的字符串表示形式。此方法仅用于调试目的,返回字符串的内容和格式可能因实现而异。返回的字符串可能为空,但可能不是null
。- 重写:
paramString
在类JTextComponent
中- 返回:
-
这个
JTextField
的字符串表示
-
getAccessibleContext
获取与此JTextField
关联的AccessibleContext
。对于JTextFields
,AccessibleContext
采用AccessibleJTextField
的形式。如有必要,将创建一个新的AccessibleJTextField
实例。- 指定者:
getAccessibleContext
在接口Accessible
中- 重写:
getAccessibleContext
在类JTextComponent
中- 返回:
-
一个
AccessibleJTextField
作为这个JTextField
的AccessibleContext
-