簡介
所有已實現的接口:ImageObserver, MenuContainer, Serializable, Accessible, Scrollable, SwingConstants
直接已知子類:DefaultTreeCellEditor.DefaultTextField, JFormattedTextField, JPasswordField
public class JTextFieldextends JTextComponentimplements 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 |
欄位摘要 |
static String | 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繼承的欄位 |
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
從接口 java.awt.image.ImageObserver繼承的欄位 |
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
構造方法摘要 |
JTextField() 構造一個新的 TextField。 |
|
JTextField(Document doc, String text, int columns) 構造一個新的 JTextField,它使用給定文本存儲模型和給定的列數。 |
|
JTextField(int columns) 構造一個具有指定列數的新的空 TextField。 |
|
JTextField(String text) 構造一個用指定文本初始化的新 TextField。 |
|
JTextField(String text, int columns) 構造一個用指定文本和列初始化的新 TextField。 |
|
方法摘要 |
protected void | actionPropertyChanged(Action action, String propertyName) 更新文本欄位的狀態以回響關聯動作中的屬性更改。 |
void | addActionListener(ActionListener l) 添加指定的操作偵聽器以從此文本欄位接收操作事件。 |
protected void | configurePropertiesFromAction(Action a) 在此文本欄位上設定屬性,以匹配指定 Action 中的值。 |
protected PropertyChangeListener | createActionPropertyChangeListener(Action a) 創建並返回一個負責偵聽指定 Action 的更改以及更新適當屬性的 PropertyChangeListener。 |
protected Document | createDefaultModel() 如果沒有顯式給出構造時要使用的模型,則創建該模型的默認實現。 |
protected void | fireActionPerformed() 通知對此事件類型需要的所有偵聽器。 |
AccessibleContext | getAccessibleContext() 獲取與此 JTextField 關聯的 AccessibleContext。 |
Action | getAction() 返回此 ActionEvent 源當前設定的 Action,如果沒有設定 Action 則返回 null。 |
ActionListener[] | getActionListeners() 返回通過 addActionListener() 添加到此 JTextField 中的所有 ActionListener 的數組。 |
Action[] | getActions() 獲取編輯器的命令列表。 |
int | getColumns() 返回此 TextField 中的列數。 |
protected int | getColumnWidth() 返回列寬度。 |
int | getHorizontalAlignment() 返回文本的水平對齊方式。 |
BoundedRangeModel | getHorizontalVisibility() 獲取文本欄位的可見性。 |
Dimension | getPreferredSize() 返回此 TextField 所需的首選大小 Dimensions。 |
int | getScrollOffset() 獲取滾動偏移量(以像素為單位)。 |
String | getUIClassID() 獲取 UI 的類 ID。 |
boolean | isValidateRoot() 調用來自文本欄位本身的 revalidate,將通過驗證文本欄位來處理,如果文本欄位不包含在 JViewport 中,則在這種情況下將返回 false。 |
protected String | paramString() 返回此 JTextField 的字元串表示形式。 |
void | postActionEvent() 通過將其指派給所有已註冊的 ActionListener 對象來處理髮生在此文本欄位上的操作事件。 |
void | removeActionListener(ActionListener l) 移除指定的操作偵聽器,以便不再從此文本欄位接收操作事件。 |
void | scrollRectToVisible(Rectangle r) 將欄位向左或向右滾動。 |
void | setAction(Action a) 設定 ActionEvent 源的 Action。 |
void | setActionCommand(String command) 設定用於操作事件的命令字元串。 |
void | setColumns(int columns) 設定此 TextField 中的列數,然後驗證布局。 |
void | setDocument(Document doc) 將編輯器與一個文本文檔關聯。 |
void | setFont(Font f) 設定當前字型。 |
void | setHorizontalAlignment(int alignment) 設定文本的水平對齊方式。 |
void | setScrollOffset(int scrollOffset) 獲取滾動偏移量(以像素為單位)。 |