JTextField

JTextField 是一個輕量級組件,它允許編輯單行文本。 JTextField 應與 java.awt.TextField 具有原始碼兼容性,理應如此。此組件具有 java.awt.TextField 類中沒有的功能。

簡介

所有已實現的接口: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) 獲取滾動偏移量(以像素為單位)。

相關詞條

熱門詞條

聯絡我們