所有已实现的接口:ImageObserver, MenuContainer, Serializable, Accessible, Scrollable, SwingConstants
直接已知子类:DefaultTreeCellEditor.DefaultTextField, JFormattedTextField, JPasswordField
public class
JTextFieldextendsJTextComponentimplements SwingConstants
JTextField 是一个轻量级组件,它允许编辑单行文本。有关使用文本字段的信息和示例,请参阅
The Java Tutorial 中的 How to Use Text Fields 一节。 JTextField 应与 java.awt.TextField 具有源代码兼容性,理应如此。此组件具有 java.awt.TextField 类中没有的功能。有关其他功能,请参考超类。 JTextField 具有建立字符串的方法,此字符串用作针对被激发的操作事件的命令字符串。java.awt.TextField 把字段文本用作针对 ActionEvent 的命令字符串。如果通过 setActionCommand 方法设置的命令字符串不为 null,则 JTextField 将使用该字符串来保持与 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 事件的方式是兼容的。如果文本字段没有操作侦听器,则从 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); } } }
警告:Swing 不是线程安全的。有关更多信息,请参阅 Swing's Threading Policy。
警告:此类的已序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeans 长期存储的功能。请参见 XMLEncoder。
另请参见:setActionCommand(java.lang.String), JPasswordField, addActionListener(java.awt.event.ActionListener)
|
嵌套类摘要
|
|
|---|---|
|
protected class
|
JTextField.AccessibleJTextField
此类实现对 JTextField 类的可访问性支持。
|
|
从类 javax.swing.text.JTextComponent继承的嵌套类/接口
|
|---|
|
JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBinding
|
|
从类 javax.swing.JComponent继承的嵌套类/接口
|
|---|
|
JComponent.AccessibleJComponent
|
|
从类 java.awt.Container继承的嵌套类/接口
|
|---|
|
Container.AccessibleAWTContainer
|
|
从类 java.awt.Component继承的嵌套类/接口
|
|---|
|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
|
|
字段摘要
|
|
|---|---|
|
staticString |
notifyAction
发送通知(已接收字段内容)的动作名称。
|
|
从类 javax.swing.text.JTextComponent继承的字段
|
|---|
|
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
|
|
从类 javax.swing.JComponent继承的字段
|
|---|
|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY,ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
|
|
从类 java.awt.Component继承的字段
|
|---|
|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
|
|
从接口 javax.swing.SwingConstants继承的字段
|
|---|
|
从接口 java.awt.image.ImageObserver继承的字段
|
|---|
|
构造方法摘要
|
|
|---|---|
|
构造一个新的 TextField。
|
|
|
构造一个新的 JTextField,它使用给定文本存储模型和给定的列数。
|
|
|
JTextField(int columns)
构造一个具有指定列数的新的空 TextField。
|
|
|
JTextField(Stringtext)
构造一个用指定文本初始化的新 TextField。
|
|
|
JTextField(Stringtext, int columns)
构造一个用指定文本和列初始化的新 TextField。
|
|
|
方法摘要
|
|
|---|---|
|
protected void
|
更新文本字段的状态以响应关联动作中的属性更改。
|
|
void
|
addActionListener(ActionListenerl)
添加指定的操作侦听器以从此文本字段接收操作事件。
|
|
protected void
|
configurePropertiesFromAction(Actiona)
在此文本字段上设置属性,以匹配指定 Action 中的值。
|
|
protected PropertyChangeListener
|
createActionPropertyChangeListener(Actiona)
创建并返回一个负责侦听指定 Action 的更改以及更新适当属性的 PropertyChangeListener。
|
|
protectedDocument |
createDefaultModel()
如果没有显式给出构造时要使用的模型,则创建该模型的默认实现。
|
|
protected void
|
fireActionPerformed()
通知对此事件类型需要的所有侦听器。
|
|
AccessibleContext
|
getAccessibleContext()
获取与此 JTextField 关联的 AccessibleContext。
|
|
getAction()
返回此 ActionEvent 源当前设置的 Action,如果没有设置 Action 则返回 null。
|
|
|
getActionListeners()
返回通过 addActionListener() 添加到此 JTextField 中的所有 ActionListener 的数组。
|
|
|
Action[]
|
getActions()
获取编辑器的命令列表。
|
|
int
|
getColumns()
返回此 TextField 中的列数。
|
|
protected int
|
getColumnWidth()
返回列宽度。
|
|
int
|
getHorizontalAlignment()
返回文本的水平对齐方式。
|
|
BoundedRangeModel
|
getHorizontalVisibility()
获取文本字段的可见性。
|
|
getPreferredSize()
返回此 TextField 所需的首选大小 Dimensions。
|
|
|
int
|
getScrollOffset()
获取滚动偏移量(以像素为单位)。
|
|
getUIClassID()
获取 UI 的类 ID。
|
|
|
boolean
|
isValidateRoot()
调用来自文本字段本身的 revalidate,将通过验证文本字段来处理,如果文本字段不包含在 JViewport 中,则在这种情况下将返回 false。
|
|
protectedString |
paramString()
返回此 JTextField 的字符串表示形式。
|
|
void
|
postActionEvent()
通过将其指派给所有已注册的 ActionListener 对象来处理发生在此文本字段上的操作事件。
|
|
void
|
removeActionListener(ActionListenerl)
移除指定的操作侦听器,以便不再从此文本字段接收操作事件。
|
|
void
|
scrollRectToVisible(Rectangler)
将字段向左或向右滚动。
|
|
void
|
setAction(Actiona)
设置 ActionEvent 源的 Action。
|
|
void
|
setActionCommand(Stringcommand)
设置用于操作事件的命令字符串。
|
|
void
|
setColumns(int columns)
设置此 TextField 中的列数,然后验证布局。
|
|
void
|
setDocument(Documentdoc)
将编辑器与一个文本文档关联。
|
|
void
|
setFont(Fontf)
设置当前字体。
|
|
void
|
setHorizontalAlignment(int alignment)
设置文本的水平对齐方式。
|
|
void
|
setScrollOffset(int scrollOffset)
获取滚动偏移量(以像素为单位)。
|
