|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.text.JTextComponent javax.swing.JTextField
public class JTextField
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
套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 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)
獲取滾動偏移量(以像素為單位)。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
public static final String notifyAction
建構子詳細資訊 |
---|
public JTextField()
TextField
。創建一個預設的模型,初始字元串為 null
,列數設置為 0。
public JTextField(String text)
TextField
。創建列數為 0 的預設模型。
text
- 要顯示的文本,或者為 null
public JTextField(int columns)
TextField
。創建預設的模型,初始字元串設置為 null
。
columns
- 用來計算首選寬度的列數;如果列設置為 0,則首選寬度將是元件實作的自然結果public JTextField(String text, int columns)
TextField
。創建預設的模型。
text
- 要顯示的文本,或者為 null
columns
- 用來計算首選寬度的列數;如果列被設置為 0,則首選寬度將是元件實作的自然結果public JTextField(Document doc, String text, int columns)
JTextField
,它使用給定文本存儲模型和給定的列數。其他建構子均調用此方法。如果文檔為 null
,則創建預設的模型。
doc
- 要使用的文本存儲;如果為 null
,則通過調用 createDefaultModel
方法提供一個預設的存儲text
- 要顯示的初始文本,或者為 null
columns
- 要用來計算首選寬度 >= 0 的列數;如果 columns
被設置為 0,則首選寬度將為元件實作的自然結果
IllegalArgumentException
- 如果 columns
< 0方法詳細資訊 |
---|
public String getUIClassID()
JComponent
中的 getUIClassID
JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)
public void setDocument(Document doc)
JTextComponent
中的 setDocument
doc
- 要顯示/編輯的文檔JTextComponent.getDocument()
public boolean isValidateRoot()
revalidate
,將通過驗證文本欄位來處理,如果文本欄位不包含在 JViewport
中,則在這種情況下將返回 false。
JComponent
中的 isValidateRoot
JViewPort
,則返回 false;否則返回 trueJComponent.revalidate()
,
JComponent.isValidateRoot()
public int getHorizontalAlignment()
JTextField.LEFT
JTextField.CENTER
JTextField.RIGHT
JTextField.LEADING
JTextField.TRAILING
public void setHorizontalAlignment(int alignment)
JTextField.LEFT
JTextField.CENTER
JTextField.RIGHT
JTextField.LEADING
JTextField.TRAILING
invalidate
和 repaint
,並且觸發 PropertyChange
事件("horizontalAlignment")。
alignment
- 對齊方式
IllegalArgumentException
- 如果 alignment
不是一個有效鍵protected Document createDefaultModel()
PlainDocument
的一個實例。
public int getColumns()
TextField
中的列數。
public void setColumns(int columns)
TextField
中的列數,然後驗證佈局。
columns
- 列數 >= 0
IllegalArgumentException
- 如果 columns
小於 0protected int getColumnWidth()
public Dimension getPreferredSize()
TextField
所需的首選大小 Dimensions
。如果設置的列數為非 0 ,則將寬度設置為此數與列的寬度的乘積。
JComponent
中的 getPreferredSize
JComponent.setPreferredSize(java.awt.Dimension)
,
ComponentUI
public void setFont(Font f)
revalidate
。
JComponent
中的 setFont
f
- 新字體Component.getFont()
public void addActionListener(ActionListener l)
l
- 要添加的動作偵聽器public void removeActionListener(ActionListener l)
l
- 要移除的操作偵聽器public ActionListener[] getActionListeners()
ActionListener
的陣列。
ActionListener
,或者不具有添加的偵聽器時返回一個空陣列protected void fireActionPerformed()
EventListenerList
public void setActionCommand(String command)
command
- 命令字元串public void setAction(Action a)
ActionEvent
源的 Action
。新的 Action
替換任何以前設置的 Action
,而不影響通過 addActionListener
獨立添加的 ActionListeners
。如果 Action
已經是一個註冊到 ActionEvent
源的 ActionListener
,則不對它進行重新註冊。
設置 Action
將導致立即更改支持 Action
的 Swing 元件中描述的所有屬性。隨後,文本欄位的屬性將隨著 Action
屬性的變化而自動更新。
此方法使用三個其他方法設置並說明追蹤 Action
的屬性值。它使用 configurePropertiesFromAction
方法立即更改文本欄位的屬性。要追蹤 Action
屬性值中的更改,此方法應註冊 createActionPropertyChangeListener
所返回的 PropertyChangeListener
。當 Action
中的屬性更改時,預設 PropertyChangeListener
調用 actionPropertyChanged
方法。
a
- JTextField
的 Action
,或者為 null
Action
,
getAction()
,
configurePropertiesFromAction(javax.swing.Action)
,
createActionPropertyChangeListener(javax.swing.Action)
,
actionPropertyChanged(javax.swing.Action, java.lang.String)
public Action getAction()
ActionEvent
源當前設置的 Action
,如果沒有設置 Action
則返回 null
。
ActionEvent
源的 Action
,或者 null
Action
,
setAction(javax.swing.Action)
protected void configurePropertiesFromAction(Action a)
Action
中的值。有關此方法設置的是哪些屬性的更多資訊,請參閱支持 Action
的 Swing 元件。
a
- 從其獲取屬性的 Action
,或者為 null
Action
,
setAction(javax.swing.Action)
protected void actionPropertyChanged(Action action, String propertyName)
createActionPropertyChangeListener
所返回的 PropertyChangeListener
中調用此方法。子類別通常不調用此方法。支持其他 Action
屬性的子類別應該覆寫此方法和 configurePropertiesFromAction
。
有關此方法設置的屬性列表,請參閱支持 Action
的 Swing 元件中的表。
action
- 與此文本欄位關聯的 Action
propertyName
- 已更改屬性的名稱Action
,
configurePropertiesFromAction(javax.swing.Action)
protected PropertyChangeListener createActionPropertyChangeListener(Action a)
Action
的更改以及更新適當屬性的 PropertyChangeListener
。
警告:如果子類別化此方法,則不要創建匿名的內部類別。如果執行文本欄位的生命週期,則它將被綁定到 Action
的值。
a
- 文本欄位的動作Action
,
setAction(javax.swing.Action)
public Action[] getActions()
JTextComponent
中的 getActions
public void postActionEvent()
ActionListener
物件來處理發生在此文本欄位上的操作事件。通常,這通過以文本欄位註冊的控制器來調用。
public BoundedRangeModel getHorizontalVisibility()
欄位的外觀實作管理最小值、最大值,以及 BoundedRangeModel
的範圍屬性。
BoundedRangeModel
public int getScrollOffset()
public void setScrollOffset(int scrollOffset)
scrollOffset
- 偏移量 >= 0public void scrollRectToVisible(Rectangle r)
JComponent
中的 scrollRectToVisible
r
- 要滾動的區域JViewport
protected String paramString()
JTextField
的字元串表示形式。此方法僅在進行除錯的時候使用,對於各個實作,所返回字元串的內容和格式可能有所不同。返回的字元串可能為空,但不可能為 null
。
JTextComponent
中的 paramString
JTextField
的字元串表示形式public AccessibleContext getAccessibleContext()
JTextField
關聯的 AccessibleContext
。對於 JTextFields
元件,AccessibleContext
採用 AccessibleJTextField
的形式。必要時創建新的 AccessibleJTextField
實例。
Accessible
中的 getAccessibleContext
JTextComponent
中的 getAccessibleContext
AccessibleJTextField
,它充當此 JTextField
的 AccessibleContext
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。