|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.text.JTextComponent
public abstract class JTextComponent
JTextComponent
是 swing 文本元件的基礎類別。它會試著與 java.awt.TextComponent
類別相容,並且在此理應如此。還提供其他額外靈活性(不包括可插入 UI 和 bean 支持)服務。有關如何使用此類別提供的功能的資訊,請參閱 The Java Tutorial 中的 General Rules for Using Text Components 一節。
CaretListener
介面的實作。如果尚未設置定制插入符,則該 UI 將安裝預設插入符。DefaultCaret
嘗試使自己可見,這將導致 JScrollPane
內的文本元件發生滾動。DefaultCaret.setUpdatePolicy(int)
方法可以更改預設的插入符行為。
Action
介面使用 TextAction
實作來表示。文本元件支持的命令集合可以使用 getActions()
方法尋找。這些操作可以綁定到由按鍵等觸發的鍵事件上。
Keymap
讓應用程序將擊鍵綁定到操作上。為了允許 keymap 在整個多文本元件上共享,它們可以使用擴展 TextAction
的操作。TextAction
可以確定哪個 JTextComponent
最近有或以前有過焦點,並因此成為該操作的執行者(在此情況下,發送到該操作的 ActionEvent
不包含作為其源的目標文本元件)。
input method framework 讓文本元件與輸入法交互,分隔預處理事件的軟體元件,來讓使用者使用非常有限的幾個鍵盤鍵輸入成千上萬個不同的字元。JTextComponent
是該框架的一個活動客戶端,因此它可實作與輸入法交互的首選使用者介面。因此,有些鍵事件因為受輸入法處理而無法到達文本元件,而有些文本輸入不是作為鍵事件而是作為在 InputMethodEvent
內的提交文本到達文本元件的。完整的文本輸入是 keyTyped
鍵事件中的字元和輸入法事件中的提交文本的結合。
AWT 偵聽器模型讓應用程序將事件偵聽器附加到元件,以便將事件綁定到操作。Swing 鼓勵使用 keymap 替代偵聽器,但要通過使用它為偵聽器提供獲得事件的機會來維護與偵聽器的相容性。
鍵盤事件和輸入法事件通過以下幾個階段進行處理,每個階段都能使用該事件:
Stage |
KeyEvent |
InputMethodEvent |
---|---|---|
1. | 輸入法 | (在此處產生) |
2. | 焦點管理器 | |
3. | 註冊的鍵偵聽器 | 註冊的輸入法偵聽器 |
4. | 在 JTextComponent 中的輸入法處理 | |
5. | 使用當前 keymap 進行 keymap 處理 | |
6. | 在 JComponent 中進行鍵盤處理(如加速鍵、元件導航等) |
要維護與偵聽鍵事件但不知道輸入法事件的應用程序的相容性,在階段 4 中的輸入法處理會提供不處理輸入法事件的元件的相容性網要。對於這些元件,可將提交文本轉換為 keyTyped 鍵事件,並在階段 3 開始的鍵事件管線中進行處理,而不是在輸入法事件管線中處理。
預設情況下,元件將創建一個作為預設 keymap 由所有 JTextComponent 實例共享的 keymap(名為 DEFAULT_KEYMAP)。通常,外觀實作將安裝一個不同的 keymap,以便把另一個 keymap 中找不到的綁定解析為預設 keymap。該綁定最少包括:
該模型由 Document
介面定義。此模型應提供靈活的文本存儲機制,以在編輯過程中追蹤更改,並且可以擴展為更複雜的模型。該模型介面旨在捕獲 SGML(用於表示多種內容的系統)提供的表達式功能。每次修改文檔都會以 DocumentEvent
形式將更改的詳細資訊通知給所有觀察者,允許視圖與模型保持最新。將此事件發送給實作了 DocumentListener
介面且註冊為需要正在接受觀察的模型的觀察者。
modelToView(int)
和 viewToModel(java.awt.Point)
。
UndoableEdit
記錄以提供撤消/恢復支持。該支持由 Document 模型提供,該模型允許使用者附加 UndoableEditListener 實作。
AbstractDocument
的文檔會描述提供的假定保護。非同步調用的安全方法標記為註釋。
print
方法進行基本文檔列印。如果需要更高層級的列印,請使用 getPrintable(java.text.MessageFormat, java.text.MessageFormat)
方法。
警告:此類別的已序列化物件與以後的 Swing 版本不相容。當前序列化支持適用於短期存儲,或適用於在運行相同 Swing 版本的應用程序之間進行 RMI(Remote Method Invocation,遠端方法調用)。從 1.4 版本開始,已在 java.beans
套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder
。
Document
,
DocumentEvent
,
DocumentListener
,
Caret
,
CaretEvent
,
CaretListener
,
TextUI
,
View
,
ViewFactory
巢狀類別摘要 | |
---|---|
class |
JTextComponent.AccessibleJTextComponent
此類別實作 JTextComponent 類別的可存取性支持。 |
static class |
JTextComponent.DropLocation
表示 JTextComponent 的放置位置 (drop location)。 |
static class |
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 |
DEFAULT_KEYMAP
將由所有 JTextComponent 實例共享的預設 keymap,除非這些實例已有另一個 keymap 集合。 |
static String |
FOCUS_ACCELERATOR_KEY
焦點加速鍵的綁定 (bound) 屬性名稱。 |
從類別 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 |
從介面 java.awt.image.ImageObserver 繼承的欄位 |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
建構子摘要 | |
---|---|
JTextComponent()
創建一個新的 JTextComponent 。 |
方法摘要 | |
---|---|
void |
addCaretListener(CaretListener listener)
添加插入符偵聽器,以便偵聽任何插入符的更改通知。 |
void |
addInputMethodListener(InputMethodListener l)
添加指定的輸入方法偵聽器,以接收發自此元件的輸入方法事件。 |
static Keymap |
addKeymap(String nm,
Keymap parent)
將一個新 keymap 添加到 keymap 層次結構。 |
void |
copy()
將關聯文本模型中當前選定的範圍傳輸到系統剪貼板,並在文本模型中保留內容。 |
void |
cut()
將關聯文本模型中當前選定的範圍傳輸到系統剪貼板,並從模型中移除內容。 |
protected void |
fireCaretUpdate(CaretEvent e)
通知所有已註冊需要此事件型別的通知的偵聽器。 |
AccessibleContext |
getAccessibleContext()
獲取與此 JTextComponent 關聯的 AccessibleContext 。 |
Action[] |
getActions()
獲取編輯器的命令列表。 |
Caret |
getCaret()
獲取允許在視圖上進行導向文本導航的插入符。 |
Color |
getCaretColor()
獲取用於呈現插入符的當前顏色。 |
CaretListener[] |
getCaretListeners()
返回在此文本元件上已註冊的所有插入符偵聽器的陣列。 |
int |
getCaretPosition()
返回文本元件的文本插入符的位置。 |
Color |
getDisabledTextColor()
獲取用於呈現禁用文本的當前顏色。 |
Document |
getDocument()
獲取與編輯器關聯的模型。 |
boolean |
getDragEnabled()
返回是否啟用自動拖動處理。 |
JTextComponent.DropLocation |
getDropLocation()
返回在元件上進行 DnD 操作過程中此元件在視覺上指示為放置位置的位置;如果當前沒有顯示任何位置,則返回 null 。 |
DropMode |
getDropMode()
返回此元件的放置網要。 |
char |
getFocusAccelerator()
返回將導致接收文本元件獲取焦點的加速鍵。 |
Highlighter |
getHighlighter()
獲取負責進行高亮顯示的物件。 |
InputMethodRequests |
getInputMethodRequests()
獲取輸入方法請求處理程序,該處理程序支持此元件輸入方法發出的請求。 |
Keymap |
getKeymap()
獲取當前在此文本元件中活動的 keymap。 |
static Keymap |
getKeymap(String nm)
獲取以前添加到文檔中的已命名 keymap。 |
Insets |
getMargin()
返回文本元件的邊框和它的文本之間的空白。 |
NavigationFilter |
getNavigationFilter()
返回 NavigationFilter 。 |
Dimension |
getPreferredScrollableViewportSize()
返回視圖元件視口的首選大小。 |
Printable |
getPrintable(MessageFormat headerFormat,
MessageFormat footerFormat)
返回一個 Printable ,用於列印此 JTextComponent 的內容。 |
int |
getScrollableBlockIncrement(Rectangle visibleRect,
int orientation,
int direction)
顯示邏輯行或列的元件應計算滾動增量,它將根據方向的值完全公開一個行塊或列塊。 |
boolean |
getScrollableTracksViewportHeight()
如果視口總是強制此 Scrollable 的高度與視口高度比對,則返回 true。 |
boolean |
getScrollableTracksViewportWidth()
如果視口總是強制此 Scrollable 的寬度與視口寬度比對,則返回 true。 |
int |
getScrollableUnitIncrement(Rectangle visibleRect,
int orientation,
int direction)
顯示邏輯行或列的元件應計算滾動增量,它將根據方向的值完全公開一個新的行或列。 |
String |
getSelectedText()
返回此 TextComponent 中包含的選定文本。 |
Color |
getSelectedTextColor()
獲取用於呈現選定文本的當前顏色。 |
Color |
getSelectionColor()
獲取用於呈現選定的當前顏色。 |
int |
getSelectionEnd()
返回選定文本的結束位置。 |
int |
getSelectionStart()
返回選定文本的起始位置。 |
String |
getText()
返回此 TextComponent 中包含的文本。 |
String |
getText(int offs,
int len)
獲取由元件表示的文本部分。 |
String |
getToolTipText(MouseEvent event)
返回用作 event 的工具提示的字元串。 |
TextUI |
getUI()
獲取此導向文本的編輯器的使用者介面處理器。 |
boolean |
isEditable()
返回指示此 TextComponent 是否可編輯的 boolean。 |
static void |
loadKeymap(Keymap map,
JTextComponent.KeyBinding[] bindings,
Action[] actions)
載入帶有一組綁定的 keymap。 |
Rectangle |
modelToView(int pos)
將模型中給定位置轉換為視圖坐標系統中的位置。 |
void |
moveCaretPosition(int pos)
將插入符移動到新的位置,同時保留最後一次調用 setCaretPosition 之前定義的標記。 |
protected String |
paramString()
返回此 JTextComponent 的字元串表示形式。 |
void |
paste()
將系統剪貼板的內容傳輸到關聯的文本模型中。 |
boolean |
print()
一個便捷列印方法,它顯示列印對話框,然後在交互 網要下列印此 JTextComponent ,不列印標題和腳注文本。 |
boolean |
print(MessageFormat headerFormat,
MessageFormat footerFormat)
一個便捷列印方法,它顯示列印對話框,然後在交互 網要下列印此 JTextComponent ,列印指定的標題和腳注文本。 |
boolean |
print(MessageFormat headerFormat,
MessageFormat footerFormat,
boolean showPrintDialog,
PrintService service,
PrintRequestAttributeSet attributes,
boolean interactive)
列印此 JTextComponent 的內容。 |
protected void |
processInputMethodEvent(InputMethodEvent e)
處理元件上發生的輸入方法事件,方法是將其指派到任意已註冊的 InputMethodListener 物件。 |
void |
read(Reader in,
Object desc)
根據串流進行初始化。 |
void |
removeCaretListener(CaretListener listener)
移除插入符偵聽器。 |
static Keymap |
removeKeymap(String nm)
移除以前添加到文檔中的已命名 keymap。 |
void |
removeNotify()
通知此元件它不再有父元件。 |
void |
replaceSelection(String content)
用給定字元串所表示的新內容替換當前選定的內容。 |
void |
select(int selectionStart,
int selectionEnd)
選定指定的開始和結束位置之間的文本。 |
void |
selectAll()
選擇 TextComponent 中的所有文本。 |
void |
setCaret(Caret c)
設置要使用的插入符。 |
void |
setCaretColor(Color c)
設置用於呈現插入符的當前顏色。 |
void |
setCaretPosition(int position)
設置 TextComponent 的文本插入符的位置。 |
void |
setComponentOrientation(ComponentOrientation o)
設置語言敏感的方向,用於排序此元件內的元素或文本。 |
void |
setDisabledTextColor(Color c)
設置用於呈現禁用文本的當前顏色。 |
void |
setDocument(Document doc)
將編輯器與文本文檔關聯。 |
void |
setDragEnabled(boolean b)
開啟或關閉自動拖動處理。 |
void |
setDropMode(DropMode dropMode)
設置此元件的放置網要,為了向後相容性,此屬性的預設值為 DropMode.USE_SELECTION 。 |
void |
setEditable(boolean b)
設置指定的 boolean 變數,以指示此 TextComponent 是否應該為可編輯的。 |
void |
setFocusAccelerator(char aKey)
設置將導致接收的文本元件獲取焦點的加速鍵。 |
void |
setHighlighter(Highlighter h)
設置要使用的 highlighter。 |
void |
setKeymap(Keymap map)
設置用於將事件綁定到操作的 keymap。 |
void |
setMargin(Insets m)
設置元件的邊框和它的文本之間的空白。 |
void |
setNavigationFilter(NavigationFilter filter)
設置 NavigationFilter 。 |
void |
setSelectedTextColor(Color c)
設置用於呈現選定文本的當前顏色。 |
void |
setSelectionColor(Color c)
設置用於呈現選定的當前顏色。 |
void |
setSelectionEnd(int selectionEnd)
將選擇結束點設置為指定的位置。 |
void |
setSelectionStart(int selectionStart)
將選定起始點設置為指定的位置。 |
void |
setText(String t)
將此 TextComponent 文本設置為指定文本。 |
void |
setUI(TextUI ui)
設置此導向文本的編輯器的使用者介面處理器。 |
void |
updateUI()
重新載入可插入的 UI。 |
int |
viewToModel(Point pt)
將視圖坐標系統中的給定位置轉換為模型中最具代表性的位置。 |
void |
write(Writer out)
將模型的內容存儲到給定的串流中。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
public static final String FOCUS_ACCELERATOR_KEY
public static final String DEFAULT_KEYMAP
JTextComponent
實例共享的預設 keymap,除非這些實例已有另一個 keymap 集合。
建構子詳細資訊 |
---|
public JTextComponent()
JTextComponent
。建立插入符事件的偵聽器,並安裝可插入的 UI。將元件標記為可編輯狀態。不使用任何佈局管理器,因為佈局受文本的視圖子系統管理。文檔模型被設置為 null
。
方法詳細資訊 |
---|
public TextUI getUI()
public void setUI(TextUI ui)
ui
- 處理器public void updateUI()
getUIClassID()
。該 UI 的型別是 TextUI
。設置該 UI 之後調用 invalidate
。
JComponent
中的 updateUI
JComponent.setUI(javax.swing.plaf.ComponentUI)
,
UIManager.getLookAndFeel()
,
UIManager.getUI(javax.swing.JComponent)
public void addCaretListener(CaretListener listener)
listener
- 要添加的偵聽器CaretEvent
public void removeCaretListener(CaretListener listener)
listener
- 要移除的偵聽器CaretEvent
public CaretListener[] getCaretListeners()
CaretListener
;如果當前沒有註冊任何插入符偵聽器,則返回一個空陣列addCaretListener(javax.swing.event.CaretListener)
,
removeCaretListener(javax.swing.event.CaretListener)
protected void fireCaretUpdate(CaretEvent e)
e
- 事件EventListenerList
public void setDocument(Document doc)
doc
- 要顯示/編輯的文檔getDocument()
public Document getDocument()
public void setComponentOrientation(ComponentOrientation o)
Component
複製的描述LayoutManager
和 Component
子類別使用此屬性來確定如何佈局並繪製元件。
在建構時,元件的方向設置為 ComponentOrientation.UNKNOWN
,表示尚未顯式地指定它。UNKNOWN 方向的行為與 ComponentOrientation.LEFT_TO_RIGHT
相同。
要設置單個元件的方向,請使用此方法。要設置整個元件層次結構的方向,請使用 applyComponentOrientation
。
Component
中的 setComponentOrientation
ComponentOrientation
public Action[] getActions()
public void setMargin(Insets m)
Border
物件將使用此值創建適當的空白。不過,如果在文本元件上設置非預設邊框,則由 Border
物件負責創建適當的空白(其他情況下實際上忽略此屬性)。這會導致重繪該元件。PropertyChange 事件 ("margin") 被發送到所有偵聽器。
m
- 邊框和文本之間的空間public Insets getMargin()
public void setNavigationFilter(NavigationFilter filter)
NavigationFilter
。NavigationFilter
作為一種限制鼠標移動的方式由 DefaultCaret
和預設鼠標移動操作使用。
public NavigationFilter getNavigationFilter()
NavigationFilter
。NavigationFilter
作為一種限制鼠標移動的方式由 DefaultCaret
和預設鼠標移動操作使用。null 返回值意味著鼠標移動和選擇不受限制。
public Caret getCaret()
public void setCaret(Caret c)
c
- 插入符getCaret()
public Highlighter getHighlighter()
public void setHighlighter(Highlighter h)
null
,以禁用它。安裝新 highlighter 時,將觸發一個 PropertyChange 事件 ("highlighter")。
h
- highlightergetHighlighter()
public void setKeymap(Keymap map)
null
可有效地禁用鍵盤輸入。安裝新 keymap 時將觸發一個 PropertyChange 事件 ("keymap")。
map
- keymapgetKeymap()
public void setDragEnabled(boolean b)
true
,並且元件的 TransferHandler
必須為非 null
。dragEnabled
屬性的預設值為 false
。
遵守此屬性並識別使用者拖動動作的作業取決於外觀實作,特別是元件的 TextUI
。啟用自動拖動處理時,只要使用者在選擇上按下鼠標按鈕並將鼠標移動幾個像素,多數外觀(包括那些子類別化 BasicLookAndFeel
的外觀)就會開始拖放操作。因此將此屬性設置為 true
可以對選擇行為產生微妙的影響。
如果在忽略此屬性的情況下使用外觀,仍然可以通過在元件的 TransferHandler
上調用 exportAsDrag
開始拖放操作。
b
- 是否啟用自動拖動處理
HeadlessException
- 如果 b
為 true
,並且 GraphicsEnvironment.isHeadless()
返回 true
GraphicsEnvironment.isHeadless()
,
getDragEnabled()
,
JComponent.setTransferHandler(javax.swing.TransferHandler)
,
TransferHandler
public boolean getDragEnabled()
dragEnabled
屬性的值setDragEnabled(boolean)
public final void setDropMode(DropMode dropMode)
DropMode.USE_SELECTION
。但是,為了便於使用者使用,建議使用 DropMode.INSERT
。它還提供類似於在文本位置之間的放置操作行為,但這樣做時不影響實際文本選擇和插入符位置。
JTextComponents
支持以下放置網要:
DropMode.USE_SELECTION
DropMode.INSERT
放置網要只在此元件具有接受放置的 TransferHandler
時才有意義。
dropMode
- 要使用的放置網要
IllegalArgumentException
- 如果不支持該放置網要或放置網要為 null
getDropMode()
,
getDropLocation()
,
JComponent.setTransferHandler(javax.swing.TransferHandler)
,
TransferHandler
public final DropMode getDropMode()
setDropMode(javax.swing.DropMode)
public final JTextComponent.DropLocation getDropLocation()
null
。
此方法不用於從 TransferHandler
查詢放置位置,因為只有在返回 TransferHandler
的 canImport
並允許顯示位置後才設置放置位置。
此屬性更改時,元件將觸發名為 "dropLocation" 的屬性更改事件。
setDropMode(javax.swing.DropMode)
,
TransferHandler.canImport(TransferHandler.TransferSupport)
public Keymap getKeymap()
public static Keymap addKeymap(String nm, Keymap parent)
nm
- keymap 的名稱(必須為文檔中命名的 keymap 集合中唯一的一個);如果 keymap 是未命名的,則該名稱可以為 null
,但調用者負責管理返回的參考,因為未命名的 keymap 無法按名稱獲取parent
- 父級 keymap;如果未指定的綁定不需要在其他某個 keymap 中解析,則此 keymap 可以為 null
public static Keymap removeKeymap(String nm)
null
名稱的 Keymap 可以不以此方式移除。
nm
- 要移除的 keymap 的名稱
public static Keymap getKeymap(String nm)
null
命名的 keymap 一起使用。
nm
- keymap 的名稱
public static void loadKeymap(Keymap map, JTextComponent.KeyBinding[] bindings, Action[] actions)
載入帶有一組綁定的 keymap。這可用於取得一個靜態定義表,並將它們載入到某個 keymap 中。以下範例說明了將一些鍵綁定到與 JTextComponent 關聯的剪切、複製和粘貼操作。完成此操作的程式碼片段可能與以下形式一樣:
static final JTextComponent.KeyBinding[] defaultBindings = {
new JTextComponent.KeyBinding(
KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK),
DefaultEditorKit.copyAction),
new JTextComponent.KeyBinding(
KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK),
DefaultEditorKit.pasteAction),
new JTextComponent.KeyBinding(
KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK),
DefaultEditorKit.cutAction),
};
JTextComponent c = new JTextPane();
Keymap k = c.getKeymap();
JTextComponent.loadKeymap(k, defaultBindings, c.getActions());
綁定和操作的集合可以為空,但必須為非 null
。
map
- keymapbindings
- 綁定actions
- 操作集合public Color getCaretColor()
public void setCaretColor(Color c)
null
可有效地還原預設顏色。設置顏色會導致觸發一個 PropertyChange 事件 ("caretColor")。
c
- 顏色getCaretColor()
public Color getSelectionColor()
public void setSelectionColor(Color c)
null
的方法與設置 Color.white
的方法相同。設置顏色會導致一個 PropertyChange 事件 ("selectionColor")。
c
- 顏色getSelectionColor()
public Color getSelectedTextColor()
public void setSelectedTextColor(Color c)
null
的方法與設置 Color.black
的方法相同。設置顏色會導致觸發一個 PropertyChange 事件 ("selectedTextColor")。
c
- 顏色getSelectedTextColor()
public Color getDisabledTextColor()
public void setDisabledTextColor(Color c)
c
- 顏色getDisabledTextColor()
public void replaceSelection(String content)
這是插入內容操作的預設實作使用的一種方法,該操作綁定了 keymap 操作。
雖然大多數 Swing 方法不是執行緒安全的,但此方法是執行緒安全的。有關更多資訊,請參閱 How to Use Threads。
content
- 要替換選定內容的內容public String getText(int offs, int len) throws BadLocationException
offs
- 偏移量,該值 >= 0len
- 長度,該值 >= 0
BadLocationException
- 如果偏移量或長度無效public Rectangle modelToView(int pos) throws BadLocationException
pos
- 位置,該值 >= 0
BadLocationException
- 如果給定位置不表示關聯文檔中的有效位置TextUI.modelToView(javax.swing.text.JTextComponent, int)
public int viewToModel(Point pt)
pt
- 視圖中要轉換的位置
TextUI.viewToModel(javax.swing.text.JTextComponent, java.awt.Point)
public void cut()
null
選定不執行任何操作。
Toolkit.getSystemClipboard()
,
Clipboard
public void copy()
null
選定不執行任何操作。
Toolkit.getSystemClipboard()
,
Clipboard
public void paste()
replaceSelection(java.lang.String)
,
Toolkit.getSystemClipboard()
,
Clipboard
public void moveCaretPosition(int pos)
setCaretPosition
之前定義的標記。這就構成了一個選定。如果文檔為 null
,則不執行任何操作。位置必須在 0 和元件的文本長度之間,否則將拋出異常。
pos
- 位置
IllegalArgumentException
- 如果 position
提供的值小於 0 或大於元件的文本長度setCaretPosition(int)
public void setFocusAccelerator(char aKey)
aKey
- 鍵getFocusAccelerator()
public char getFocusAccelerator()
public void read(Reader in, Object desc) throws IOException
in
- 從中讀取的串流desc
- 描述串流的物件;此物件可以是一個字元串、一個 File、一個 URL 等。有些種類別的文檔(如 html)或許能夠使用此資訊;如果為非 null
,則將其作為文檔的屬性添加
IOException
- 如果使用該串流初始化EditorKit.createDefaultDocument()
,
setDocument(javax.swing.text.Document)
,
PlainDocument
public void write(Writer out) throws IOException
out
- 輸出串流
IOException
- 如果發生任何 I/O 錯誤public void removeNotify()
JComponent
複製的描述KeyboardAction
。
JComponent
中的 removeNotify
JComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)
public void setCaretPosition(int position)
TextComponent
的文本插入符的位置。注意,插入符可追蹤更改,所以如果元件的底層文本被更改,則此位置可能會移動。如果文檔為 null
,則不執行任何操作。位置必須在 0 和元件的文本長度之間,否則將拋出異常。
position
- 位置
IllegalArgumentException
- 如果 position
提供的值小於 0 或大於元件的文本長度public int getCaretPosition()
public void setText(String t)
TextComponent
文本設置為指定文本。如果該文本為 null
或空,則具有只刪除舊文本的效果。插入文本時,得到的插入符的位置由該插入符類別的實作確定。
雖然大多數 Swing 方法不是執行緒安全的,但此方法是執行緒安全的。有關更多資訊,請參閱 How to Use Threads。
注意,文本不是綁定屬性,所以更改時不觸發 PropertyChangeEvent
。要偵聽文本的更改,請使用 DocumentListener
。
t
- 要設置的新文本getText(int, int)
,
DefaultCaret
public String getText()
TextComponent
中包含的文本。如果底層文檔為 null
,則將給出 NullPointerException
。注意,文本不是綁定屬性,所以更改時不觸發 PropertyChangeEvent
。要偵聽文本的更改,請使用 DocumentListener
。
NullPointerException
- 如果文檔為 null
setText(java.lang.String)
public String getSelectedText()
TextComponent
中包含的選定文本。如果選定為 null
或文檔為空,則返回 null
。
IllegalArgumentException
- 如果由於某種原因選定沒有到文檔的有效映射setText(java.lang.String)
public boolean isEditable()
TextComponent
是否可編輯的 boolean。
setEditable(boolean)
public void setEditable(boolean b)
TextComponent
是否應該為可編輯的。當狀態更改時,將觸發 PropertyChange 事件("editable")。
b
- 要設置的 booleanisEditable()
public int getSelectionStart()
public void setSelectionStart(int selectionStart)
這可用於在 java.awt.TextComponent
上調用此方法的程式碼向後相容。實作此方法以轉發給 Caret
實作,後者是維護實際選定的位置。
selectionStart
- 文本的起始位置,該值 >= 0public int getSelectionEnd()
public void setSelectionEnd(int selectionEnd)
這可用於在 java.awt.TextComponent
上調用此方法的程式碼向後相容。實作此方法以轉發 Caret
實作,後者是維護實際選定的位置。
selectionEnd
- 文本的結束位置,該值 >= 0public void select(int selectionStart, int selectionEnd)
此方法設置選定文本的開始位置和結束位置,並強行限制開始位置必須大於等於零。結束位置必須大於等於開始位置,並大於等於文本元件的文本長度。
如果調用者提供不一致或超出限度的值,則該方法靜默地實施這些限制,並且不會失敗。要特別指出的是,如果開始位置或結束位置大於文本長度,則將它重置為等於文本長度。如果開始位置小於零,則將它重置為零,如果結束位置小於開始位置,則將它重置為開始位置。
此調用是為向後相容性提供的。將其作為調用 setCaretPosition
的途徑,接著再調用 moveCaretPosition
。管理選定的首選方法是直接調用這些方法。
selectionStart
- 文本的起始位置selectionEnd
- 文本的結束位置setCaretPosition(int)
,
moveCaretPosition(int)
public void selectAll()
TextComponent
中的所有文本。在 null
或空文檔上不執行任何操作。
public String getToolTipText(MouseEvent event)
event
的工具提示的字元串。這將返回以下內容之一:
setToolTipText
已使用非 null
值調用,則它將被返回;否則
getToolTipText
的值將被返回。
JTextComponent
不使用 ToolTipManager
註冊它本身。這意味著只有已在 ToolTipManager
上調用了 registerComponent
工具提示才在 TextUI
上顯示。
JComponent
中的 getToolTipText
event
- 關聯事件
event
的工具提示的字元串JComponent.setToolTipText(java.lang.String)
,
TextUI.getToolTipText(javax.swing.text.JTextComponent, java.awt.Point)
,
ToolTipManager.registerComponent(javax.swing.JComponent)
public Dimension getPreferredScrollableViewportSize()
Scrollable
中的 getPreferredScrollableViewportSize
Scrollable
的 JViewport
的 preferredSize
JComponent.getPreferredSize()
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
此操作的預設實作是只返回可視區域的 10%。子類別或許能夠提供一個更加合理的值。
Scrollable
中的 getScrollableUnitIncrement
visibleRect
- 視口中可見的視圖區域orientation
- SwingConstants.VERTICAL
或 SwingConstants.HORIZONTAL
direction
- 小於零向上/左滾動,大於零向下/右滾動
IllegalArgumentException
- 如果方向無效JScrollBar.setUnitIncrement(int)
public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
此操作的預設實作是只返回可視區域。子類別將或許能夠提供一個更加合理的值。
Scrollable
中的 getScrollableBlockIncrement
visibleRect
- 視口中可見的視圖區域orientation
- SwingConstants.VERTICAL
或 SwingConstants.HORIZONTAL
direction
- 小於零向上/左滾動,大於零向下/右滾動
JScrollBar.setBlockIncrement(int)
public boolean getScrollableTracksViewportWidth()
Scrollable
的寬度與視口寬度比對,則返回 true。例如,支持換行的正常文本視圖在這裡將返回 true,因為不希望讓換行內容超出視口右邊界而無法顯示。注意,其祖先為 JScrollPane
的 Scrollable
返回 true 可有效地禁用水平滾動。
類似於 JViewport
的滾動容器在每次進行驗證時都將使用此方法。
Scrollable
中的 getScrollableTracksViewportWidth
Scrollable
寬度與其自身寬度相比對,則返回 truepublic boolean getScrollableTracksViewportHeight()
Scrollable
的高度與視口高度比對,則返回 true。例如,縱行文本視圖(按列從左向右串流入文本)通過在此處返回 true 可有效地禁用垂直滾動。
類似於 JViewport
的滾動容器在每次進行驗證時都將使用此方法。
Scrollable
中的 getScrollableTracksViewportHeight
public boolean print() throws PrinterException
JTextComponent
,不列印標題和腳注文本。註:列印完成前此方法將阻塞。
註:在 headless 網要下,不顯示對話框。
此方法調用功能完備的 print
方法執行列印。
true
PrinterException
- 如果列印系統中發生導致列印中斷的錯誤
SecurityException
- 如果不允許此執行緒初始化列印作業請求print(MessageFormat, MessageFormat, boolean, PrintService, PrintRequestAttributeSet, boolean)
public boolean print(MessageFormat headerFormat, MessageFormat footerFormat) throws PrinterException
JTextComponent
,列印指定的標題和腳注文本。注:列印完成前此方法將阻塞。
註:在 headless 網要下,不顯示對話框。
此方法調用功能完備的 print
方法執行列印。
headerFormat
- 在 MessageFormat
中用作標題的文本,或者為 null
,表示沒有標題footerFormat
- 在 MessageFormat
中用作腳注的文本,或者為 null
,表示沒有腳注
true
PrinterException
- 如果列印系統中發生導致作業中斷的錯誤
SecurityException
- 如果不允許此執行緒初始化列印作業請求print(MessageFormat, MessageFormat, boolean, PrintService, PrintRequestAttributeSet, boolean)
,
MessageFormat
public boolean print(MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintService service, PrintRequestAttributeSet attributes, boolean interactive) throws PrinterException
JTextComponent
的內容。註:列印完成前此方法將阻塞。
通過提供 MessageFormat
參數可以將頁面標題和腳注文本添加到輸出。列印程式碼從格式中請求 String
,提供可能包含於格式化字元串中的單個項:表示當前頁數的 Integer
。
showPrintDialog boolean
參數允許指定是否向使用者顯示列印對話框。當向使用者顯示對話框時,使用者可以使用該對話框更改列印屬性甚至取消列印。
service
允許為列印對話框提供初始 PrintService
;不顯示對話框時,允許指定要列印到的 PrintService
。
attributes
可用於為列印對話框提供初始值;不顯示對話框時,用於提供所有需要的屬性。attributes
可用於控制如何列印作業,例如雙面 或單面。
interactive boolean
參數允許指定是否在交互 網要下執行列印。如果為 true
,則在列印期間顯示進度對話框(帶有中止選項)。在事件指派執行緒 上調用 print
時,此對話框為有網要的,否則為無網要的。警告:列印完成前在事件指派執行緒 上調用此方法(其中 interactive false
)將阻塞所有 事件(包括重繪)的處理。建議只有在不具有可見 GUI 的應用程序進行列印時才這樣做。
註:在 headless 網要下,忽略 showPrintDialog
和 interactive
參數且不顯示對話框。
此方法確保在列印期間不改變 document
。要直觀地指示它,則在列印期間設置 setEnabled(false)
。
此方法使用 getPrintable(java.text.MessageFormat, java.text.MessageFormat)
呈現文檔內容。
雖然大多數 Swing 方法不是執行緒安全的,但此方法是執行緒安全的。有關更多資訊,請參閱 How to Use Threads。
範例用法。此程式碼片斷顯示了一個跨平臺的列印對話框,除非使用者取消該對話框,否則在交互 網要下列印 JTextComponent
:
textComponent.print(new MessageFormat("My text component header"), new MessageFormat("Footer. Page - {0}"), true, null, null, true);
在事件指派執行緒 之外執行此程式碼將在後台 執行列印。以下網要可用於後台 列印:
FutureTask<Boolean> future = new FutureTask<Boolean>( new Callable<Boolean>() { public Boolean call() { return textComponent.print(.....); } }); executor.execute(future);
headerFormat
- 在 MessageFormat
中用作標題的文本,或者為 null
,表示沒有標題footerFormat
- 在 MessageFormat
中用作腳注的文本,或者為 null
,表示沒有腳注showPrintDialog
- 如果顯示列印對話框,則為 true
,否則為 false
service
- 初始 PrintService
,或者為 null
,表示使用預設值attributes
- 應用於列印作業的作業屬性,或者為 null
,表示沒有作業屬性interactive
- 是否在交互網要下進行列印
true
PrinterException
- 如果列印系統中發生了導致作業中斷的錯誤
SecurityException
- 如果不允許此執行緒初始化列印作業請求getPrintable(java.text.MessageFormat, java.text.MessageFormat)
,
MessageFormat
,
GraphicsEnvironment.isHeadless()
,
FutureTask
public Printable getPrintable(MessageFormat headerFormat, MessageFormat footerFormat)
Printable
,用於列印此 JTextComponent
的內容。返回的 Printable
以文檔在螢幕上呈現的外形對該文檔進行列印,為了符合紙張標準重新格式化時除外。返回的 Printable
可包裹於另一個 Printable
內,以便創建複雜的報告和文檔。
返回的 Printable
與此 JTextComponent
共享 document
。開發人員確保使用此 Printable
時不改變 document
。列印期間改變 document
將導致不確定的列印行為。
通過提供 MessageFormat
參數可以將頁面標題和腳注文本添加到輸出。列印程式碼從格式中請求 String
,提供可能包含於格式化字元串中的單個項:表示當前頁數的 Integer
。
列印時,返回的 Printable
對文檔內容進行適當地格式化以適合頁面大小。為了能正確的自動換行,所有頁面的 imageable width
必須相同。請參閱 PageFormat.getImageableWidth()
。
雖然大多數 Swing 方法不是執行緒安全的,但此方法是執行緒安全的。有關更多資訊,請參閱 How to Use Threads。
可以在任意執行緒上列印返回的 Printable
。
返回 Printable
的此實作在事件指派執行緒 上執行所有列印,而不管是在什麼執行緒上使用它。
headerFormat
- 在 MessageFormat
中用作標題的文本,或者為 null
,表示沒有標題footerFormat
- 在 MessageFormat
中用作腳注的文本,或者為 null
,表示沒有腳注
JTextComponent
內容時使用的 Printable
Printable
,
PageFormat
,
Document.render(java.lang.Runnable)
public AccessibleContext getAccessibleContext()
JTextComponent
關聯的 AccessibleContext
。對於文本元件,AccessibleContext
採用 AccessibleJTextComponent
的形式。如有必要,可以創建一個新的 AccessibleJTextComponent
實例。
Accessible
中的 getAccessibleContext
JComponent
中的 getAccessibleContext
JTextComponent
的 AccessibleContext
的 AccessibleJTextComponent
protected String paramString()
JTextComponent
的字元串表示形式。此方法僅在進行除錯的時候使用,返回的字元串的內容和格式在各種實作間可能有所不同。返回的字元串可以為空,但不可以為 null
。
覆寫 paramString
來提供有關 JFC 元件的一些特定新方面的資訊。
JComponent
中的 paramString
JTextComponent
的字元串表示形式protected void processInputMethodEvent(InputMethodEvent e)
Component
複製的描述InputMethodListener
物件。
如果元件上沒有啟用輸入方法事件,則不調用此方法。發生下列之一時啟用輸入方法事件:
addInputMethodListener
註冊了一個 InputMethodListener
物件。
enableEvents
啟用了輸入方法事件。
注意,如果事件參數為 null
,則未指定行為並且可能導致異常。
Component
中的 processInputMethodEvent
e
- 輸入方法事件InputMethodEvent
,
InputMethodListener
,
Component.addInputMethodListener(java.awt.event.InputMethodListener)
,
Component.enableEvents(long)
public InputMethodRequests getInputMethodRequests()
Component
複製的描述InputMethodRequests
實例。同時,還必須處理輸入方法事件。
Component
中的 getInputMethodRequests
null
Component.addInputMethodListener(java.awt.event.InputMethodListener)
public void addInputMethodListener(InputMethodListener l)
Component
複製的描述getInputMethodRequests
並返回一個 InputMethodRequests
實例,則該元件只接收發自輸入方法的輸入方法事件。如果偵聽器 l
為 null
,則不會拋出異常並且不執行動作。
有關 AWT 的執行緒模型的細節資訊,請參閱 AWT 執行緒問題。
Component
中的 addInputMethodListener
l
- 輸入方法偵聽器InputMethodEvent
,
InputMethodListener
,
Component.removeInputMethodListener(java.awt.event.InputMethodListener)
,
Component.getInputMethodListeners()
,
Component.getInputMethodRequests()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。