JavaTM 2 Platform
Standard Ed. 6

javax.swing.text
類別 JTextComponent

java.lang.Object
  繼承者 java.awt.Component
      繼承者 java.awt.Container
          繼承者 javax.swing.JComponent
              繼承者 javax.swing.text.JTextComponent
所有已實作的介面:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable
直接已知子類別:
JEditorPane, JTextArea, JTextField

public abstract class JTextComponent
extends JComponent
implements Scrollable, Accessible

JTextComponent 是 swing 文本元件的基礎類別。它會試著與 java.awt.TextComponent 類別相容,並且在此理應如此。還提供其他額外靈活性(不包括可插入 UI 和 bean 支持)服務。有關如何使用此類別提供的功能的資訊,請參閱 The Java Tutorial 中的 General Rules for Using Text Components 一節。

插入符更改
插入符是 swing 文本元件中的可插入物件。將插入符位置和選擇的更改通知發送到已向文本元件註冊的 CaretListener 介面的實作。如果尚未設置定制插入符,則該 UI 將安裝預設插入符。
預設情況下,該插入符會追蹤在事件指派執行緒上執行的所有更改,並且如果插入發生在插入符位置或之前,或者移除發生在插入符位置之前,則相應地更新其位置。DefaultCaret 嘗試使自己可見,這將導致 JScrollPane 內的文本元件發生滾動。DefaultCaret.setUpdatePolicy(int) 方法可以更改預設的插入符行為。
:不可編輯的文本元件也有插入符,儘管可能不繪製它。

命令
文本元件提供許多可能用於操作元件的命令。這實質上是元件表示其功能的方式。這些都將根據 swing Action 介面使用 TextAction 實作來表示。文本元件支持的命令集合可以使用 getActions() 方法尋找。這些操作可以綁定到由按鍵等觸發的鍵事件上。

文本輸入
文本元件支持靈活而且國際化的文本輸入,在使用 keymap 和輸入法框架的同時維護與 AWT 偵聽器模型的相容性。

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。該綁定最少包括:

模型/視圖拆分
文本元件具有模型/視圖拆分功能。文本元件會將用於表示模型、視圖和控制器的物件拉在一起。文本文檔模型可以由充當該模型觀察者的其他視圖共享(如,多個元件可以共享一個文檔)。

該圖表顯示控制器、文檔、事件和 ViewFactory 之間的交互

該模型由 Document 介面定義。此模型應提供靈活的文本存儲機制,以在編輯過程中追蹤更改,並且可以擴展為更複雜的模型。該模型介面旨在捕獲 SGML(用於表示多種內容的系統)提供的表達式功能。每次修改文檔都會以 DocumentEvent 形式將更改的詳細資訊通知給所有觀察者,允許視圖與模型保持最新。將此事件發送給實作了 DocumentListener 介面且註冊為需要正在接受觀察的模型的觀察者。

位置資訊
提供確定視圖中文本位置的功能。確定此資訊有兩個方法,modelToView(int)viewToModel(java.awt.Point)

撤消/恢復支持
提供對編輯歷史機制的支持,以允許進行撤消/恢復操作。預設情況下文本元件本身不提供歷史緩衝區,但確實提供可以與歷史緩衝區一起使用的 UndoableEdit 記錄以提供撤消/恢復支持。該支持由 Document 模型提供,該模型允許使用者附加 UndoableEditListener 實作。

執行緒安全
swing 文本元件對執行緒安全操作提供一定程度的支持。因為文本元件的可配置性級別高,所以可以迴避所提供的保護。該保護主要來自模型,因此 AbstractDocument 的文檔會描述提供的假定保護。非同步調用的安全方法標記為註釋。

換行
有關如果處理換行的討論,請參閱 DefaultEditorKit

列印支持
提供了幾個 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)
          將模型的內容存儲到給定的串流中。
 
從類別 javax.swing.JComponent 繼承的方法
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
從類別 java.awt.Container 繼承的方法
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
從類別 java.awt.Component 繼承的方法
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

FOCUS_ACCELERATOR_KEY

public static final String FOCUS_ACCELERATOR_KEY
焦點加速鍵的綁定 (bound) 屬性名稱。

另請參見:
常數欄位值

DEFAULT_KEYMAP

public static final String DEFAULT_KEYMAP
將由所有 JTextComponent 實例共享的預設 keymap,除非這些實例已有另一個 keymap 集合。

另請參見:
常數欄位值
建構子詳細資訊

JTextComponent

public JTextComponent()
創建一個新的 JTextComponent。建立插入符事件的偵聽器,並安裝可插入的 UI。將元件標記為可編輯狀態。不使用任何佈局管理器,因為佈局受文本的視圖子系統管理。文檔模型被設置為 null

方法詳細資訊

getUI

public TextUI getUI()
獲取此導向文本的編輯器的使用者介面處理器。

返回:
處理器

setUI

public void setUI(TextUI ui)
設置此導向文本的編輯器的使用者介面處理器。

參數:
ui - 處理器

updateUI

public void updateUI()
重新載入可插入的 UI。用於獲取新介面的鍵是 getUIClassID()。該 UI 的型別是 TextUI。設置該 UI 之後調用 invalidate

覆寫:
類別 JComponent 中的 updateUI
另請參見:
JComponent.setUI(javax.swing.plaf.ComponentUI), UIManager.getLookAndFeel(), UIManager.getUI(javax.swing.JComponent)

addCaretListener

public void addCaretListener(CaretListener listener)
添加插入符偵聽器,以便偵聽任何插入符的更改通知。

參數:
listener - 要添加的偵聽器
另請參見:
CaretEvent

removeCaretListener

public void removeCaretListener(CaretListener listener)
移除插入符偵聽器。

參數:
listener - 要移除的偵聽器
另請參見:
CaretEvent

getCaretListeners

public CaretListener[] getCaretListeners()
返回在此文本元件上已註冊的所有插入符偵聽器的陣列。

返回:
元件的所有 CaretListener;如果當前沒有註冊任何插入符偵聽器,則返回一個空陣列
從以下版本開始:
1.4
另請參見:
addCaretListener(javax.swing.event.CaretListener), removeCaretListener(javax.swing.event.CaretListener)

fireCaretUpdate

protected void fireCaretUpdate(CaretEvent e)
通知所有已註冊需要此事件型別的通知的偵聽器。使用傳入此觸發方法的參數延後創建事件實例。偵聽器列表按從後往前的方式處理。

參數:
e - 事件
另請參見:
EventListenerList

setDocument

public void setDocument(Document doc)
將編輯器與文本文檔關聯。使用當前已註冊的處理器建構一個文檔視圖,重新確認後由編輯器顯示該文檔。PropertyChange 事件 ("document") 被傳播到每個偵聽器。

參數:
doc - 要顯示/編輯的文檔
另請參見:
getDocument()

getDocument

public Document getDocument()
獲取與編輯器關聯的模型。此方法主要是讓 UI 以最少的要求成為文本編輯器的宣告次數獲取。子類別將返回通常將用於擴展 Document 的實際模型型別。

返回:
模型

setComponentOrientation

public void setComponentOrientation(ComponentOrientation o)
從類別 Component 複製的描述
設置語言敏感的方向,用於排序此元件內的元素或文本。語言敏感的 LayoutManagerComponent 子類別使用此屬性來確定如何佈局並繪製元件。

在建構時,元件的方向設置為 ComponentOrientation.UNKNOWN,表示尚未顯式地指定它。UNKNOWN 方向的行為與 ComponentOrientation.LEFT_TO_RIGHT 相同。

要設置單個元件的方向,請使用此方法。要設置整個元件層次結構的方向,請使用 applyComponentOrientation

覆寫:
類別 Component 中的 setComponentOrientation
另請參見:
ComponentOrientation

getActions

public Action[] getActions()
獲取編輯器的命令列表。這是嵌入的 UI 所支持的命令列表,該 UI 通過編輯器本身支持的命令集進行擴充。這些命令對於綁定到事件是很有用的,例如在 keymap 中。

返回:
命令列表

setMargin

public void setMargin(Insets m)
設置元件的邊框和它的文本之間的空白。文本元件的預設 Border 物件將使用此值創建適當的空白。不過,如果在文本元件上設置非預設邊框,則由 Border 物件負責創建適當的空白(其他情況下實際上忽略此屬性)。這會導致重繪該元件。PropertyChange 事件 ("margin") 被發送到所有偵聽器。

參數:
m - 邊框和文本之間的空間

getMargin

public Insets getMargin()
返回文本元件的邊框和它的文本之間的空白。

返回:
空白

setNavigationFilter

public void setNavigationFilter(NavigationFilter filter)
設置 NavigationFilterNavigationFilter 作為一種限制鼠標移動的方式由 DefaultCaret 和預設鼠標移動操作使用。

從以下版本開始:
1.4

getNavigationFilter

public NavigationFilter getNavigationFilter()
返回 NavigationFilterNavigationFilter 作為一種限制鼠標移動的方式由 DefaultCaret 和預設鼠標移動操作使用。null 返回值意味著鼠標移動和選擇不受限制。

返回:
NavigationFilter
從以下版本開始:
1.4

getCaret

public Caret getCaret()
獲取允許在視圖上進行導向文本導航的插入符。

返回:
插入符

setCaret

public void setCaret(Caret c)
設置要使用的插入符。預設情況下,這將由安裝的 UI 設置。如果需要,還可以更改為定制插入符。設置插入符會導致觸發一個 PropertyChange 事件 ("caret")。

參數:
c - 插入符
另請參見:
getCaret()

getHighlighter

public Highlighter getHighlighter()
獲取負責進行高亮顯示的物件。

返回:
highlighter

setHighlighter

public void setHighlighter(Highlighter h)
設置要使用的 highlighter。預設情況下,這將由安裝的 UI 設置。如果需要,還可以更改為自定義 highlighter。可以將 highlighter 設置為 null,以禁用它。安裝新 highlighter 時,將觸發一個 PropertyChange 事件 ("highlighter")。

參數:
h - highlighter
另請參見:
getHighlighter()

setKeymap

public void setKeymap(Keymap map)
設置用於將事件綁定到操作的 keymap。設置為 null 可有效地禁用鍵盤輸入。安裝新 keymap 時將觸發一個 PropertyChange 事件 ("keymap")。

參數:
map - keymap
另請參見:
getKeymap()

setDragEnabled

public void setDragEnabled(boolean b)
開啟或關閉自動拖動處理。要啟用自動拖動處理,應該將此屬性設置為 true,並且元件的 TransferHandler 必須為非 nulldragEnabled 屬性的預設值為 false

遵守此屬性並識別使用者拖動動作的作業取決於外觀實作,特別是元件的 TextUI。啟用自動拖動處理時,只要使用者在選擇上按下鼠標按鈕並將鼠標移動幾個像素,多數外觀(包括那些子類別化 BasicLookAndFeel 的外觀)就會開始拖放操作。因此將此屬性設置為 true 可以對選擇行為產生微妙的影響。

如果在忽略此屬性的情況下使用外觀,仍然可以通過在元件的 TransferHandler 上調用 exportAsDrag 開始拖放操作。

參數:
b - 是否啟用自動拖動處理
拋出:
HeadlessException - 如果 btrue,並且 GraphicsEnvironment.isHeadless() 返回 true
從以下版本開始:
1.4
另請參見:
GraphicsEnvironment.isHeadless(), getDragEnabled(), JComponent.setTransferHandler(javax.swing.TransferHandler), TransferHandler

getDragEnabled

public boolean getDragEnabled()
返回是否啟用自動拖動處理。

返回:
dragEnabled 屬性的值
從以下版本開始:
1.4
另請參見:
setDragEnabled(boolean)

setDropMode

public final void setDropMode(DropMode dropMode)
設置此元件的放置網要,為了向後相容性,此屬性的預設值為 DropMode.USE_SELECTION。但是,為了便於使用者使用,建議使用 DropMode.INSERT。它還提供類似於在文本位置之間的放置操作行為,但這樣做時不影響實際文本選擇和插入符位置。

JTextComponents 支持以下放置網要:

放置網要只在此元件具有接受放置的 TransferHandler 時才有意義。

參數:
dropMode - 要使用的放置網要
拋出:
IllegalArgumentException - 如果不支持該放置網要或放置網要為 null
從以下版本開始:
1.6
另請參見:
getDropMode(), getDropLocation(), JComponent.setTransferHandler(javax.swing.TransferHandler), TransferHandler

getDropMode

public final DropMode getDropMode()
返回此元件的放置網要。

返回:
此元件的放置網要
從以下版本開始:
1.6
另請參見:
setDropMode(javax.swing.DropMode)

getDropLocation

public final JTextComponent.DropLocation getDropLocation()
返回在元件上進行 DnD 操作過程中此元件在視覺上指示為放置位置的位置;如果當前沒有顯示任何位置,則返回 null

此方法不用於從 TransferHandler 查詢放置位置,因為只有在返回 TransferHandlercanImport 並允許顯示位置後才設置放置位置。

此屬性更改時,元件將觸發名為 "dropLocation" 的屬性更改事件。

返回:
放置位置
從以下版本開始:
1.6
另請參見:
setDropMode(javax.swing.DropMode), TransferHandler.canImport(TransferHandler.TransferSupport)

getKeymap

public Keymap getKeymap()
獲取當前在此文本元件中活動的 keymap。

返回:
keymap

addKeymap

public static Keymap addKeymap(String nm,
                               Keymap parent)
將一個新 keymap 添加到 keymap 層次結構。Keymap 綁定自下向上進行解析,所以在子級中指定的屬性將覆寫父級中指定的屬性。

參數:
nm - keymap 的名稱(必須為文檔中命名的 keymap 集合中唯一的一個);如果 keymap 是未命名的,則該名稱可以為 null,但調用者負責管理返回的參考,因為未命名的 keymap 無法按名稱獲取
parent - 父級 keymap;如果未指定的綁定不需要在其他某個 keymap 中解析,則此 keymap 可以為 null
返回:
keymap

removeKeymap

public static Keymap removeKeymap(String nm)
移除以前添加到文檔中的已命名 keymap。具有 null 名稱的 Keymap 可以不以此方式移除。

參數:
nm - 要移除的 keymap 的名稱
返回:
已移除的 keymap

getKeymap

public static Keymap getKeymap(String nm)
獲取以前添加到文檔中的已命名 keymap。此 keymap 不與以 null 命名的 keymap 一起使用。

參數:
nm - keymap 的名稱
返回:
keymap

loadKeymap

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 - keymap
bindings - 綁定
actions - 操作集合

getCaretColor

public Color getCaretColor()
獲取用於呈現插入符的當前顏色。

返回:
顏色

setCaretColor

public void setCaretColor(Color c)
設置用於呈現插入符的當前顏色。設置為 null 可有效地還原預設顏色。設置顏色會導致觸發一個 PropertyChange 事件 ("caretColor")。

參數:
c - 顏色
另請參見:
getCaretColor()

getSelectionColor

public Color getSelectionColor()
獲取用於呈現選定的當前顏色。

返回:
顏色

setSelectionColor

public void setSelectionColor(Color c)
設置用於呈現選定的當前顏色。將顏色設置為 null 的方法與設置 Color.white 的方法相同。設置顏色會導致一個 PropertyChange 事件 ("selectionColor")。

參數:
c - 顏色
另請參見:
getSelectionColor()

getSelectedTextColor

public Color getSelectedTextColor()
獲取用於呈現選定文本的當前顏色。

返回:
顏色

setSelectedTextColor

public void setSelectedTextColor(Color c)
設置用於呈現選定文本的當前顏色。將顏色設置為 null 的方法與設置 Color.black 的方法相同。設置顏色會導致觸發一個 PropertyChange 事件 ("selectedTextColor")。

參數:
c - 顏色
另請參見:
getSelectedTextColor()

getDisabledTextColor

public Color getDisabledTextColor()
獲取用於呈現禁用文本的當前顏色。

返回:
顏色

setDisabledTextColor

public void setDisabledTextColor(Color c)
設置用於呈現禁用文本的當前顏色。設置顏色會觸發一個 PropertyChange 事件 ("disabledTextColor")。

參數:
c - 顏色
另請參見:
getDisabledTextColor()

replaceSelection

public void replaceSelection(String content)
用給定字元串所表示的新內容替換當前選定的內容。如果沒有選擇的內容,則該操作插入給定的文本。如果沒有替換文本,則該操作移除當前選擇的內容。

這是插入內容操作的預設實作使用的一種方法,該操作綁定了 keymap 操作。

雖然大多數 Swing 方法不是執行緒安全的,但此方法是執行緒安全的。有關更多資訊,請參閱 How to Use Threads

參數:
content - 要替換選定內容的內容

getText

public String getText(int offs,
                      int len)
               throws BadLocationException
獲取由元件表示的文本部分。如果長度為 0,則返回空字元串。

參數:
offs - 偏移量,該值 >= 0
len - 長度,該值 >= 0
返回:
文本
拋出:
BadLocationException - 如果偏移量或長度無效

modelToView

public Rectangle modelToView(int pos)
                      throws BadLocationException
將模型中給定位置轉換為視圖坐標系統中的位置。元件大小必須為一個正值才能用於計算此轉換(即在確定元件大小之前不能計算佈局)。該元件未必是可見或已繪製的。

參數:
pos - 位置,該值 >= 0
返回:
直角坐標,其在坐標系中的位置為 (r.x, r.y);如果元件尚不具有正值大小,則返回 null。
拋出:
BadLocationException - 如果給定位置不表示關聯文檔中的有效位置
另請參見:
TextUI.modelToView(javax.swing.text.JTextComponent, int)

viewToModel

public int viewToModel(Point pt)
將視圖坐標系統中的給定位置轉換為模型中最具代表性的位置。元件大小必須為一個正值才能用於計算此轉換(即在確定元件大小之前不能計算佈局)。該元件不必是可見或已繪製的。

參數:
pt - 視圖中要轉換的位置
返回:
文檔起始部分的偏移量,該值 >= 0;如果元件尚不具有正值大小,則返回 -1。
另請參見:
TextUI.viewToModel(javax.swing.text.JTextComponent, java.awt.Point)

cut

public void cut()
將關聯文本模型中當前選定的範圍傳輸到系統剪貼板,並從模型中移除內容。重新設置當前選定。對於 null 選定不執行任何操作。

另請參見:
Toolkit.getSystemClipboard(), Clipboard

copy

public void copy()
將關聯文本模型中當前選定的範圍傳輸到系統剪貼板,並在文本模型中保留內容。當前選定保持原樣。對於 null 選定不執行任何操作。

另請參見:
Toolkit.getSystemClipboard(), Clipboard

paste

public void paste()
將系統剪貼板的內容傳輸到關聯的文本模型中。如果在關聯視圖中有選定的內容,則使用剪貼板的內容替換它。如果沒有選定的內容,則將剪貼板插入關聯視圖中當前插入位置的前面。如果剪貼板為空,則不執行任何操作。

另請參見:
replaceSelection(java.lang.String), Toolkit.getSystemClipboard(), Clipboard

moveCaretPosition

public void moveCaretPosition(int pos)
將插入符移動到新的位置,同時保留最後一次調用 setCaretPosition 之前定義的標記。這就構成了一個選定。如果文檔為 null,則不執行任何操作。位置必須在 0 和元件的文本長度之間,否則將拋出異常。

參數:
pos - 位置
拋出:
IllegalArgumentException - 如果 position 提供的值小於 0 或大於元件的文本長度
另請參見:
setCaretPosition(int)

setFocusAccelerator

public void setFocusAccelerator(char aKey)
設置將導致接收的文本元件獲取焦點的加速鍵。加速鍵將是 alt 鍵和給定字元(已轉換為大寫)的修改鍵。預設情況下,不存在焦點加速鍵。以前的任何加速鍵設置都將被取代。'\0' 鍵設置將被註冊,並具有關閉焦點加速鍵的效果。設置新鍵時,將觸發一個 PropertyChange 事件 (FOCUS_ACCELERATOR_KEY)。

參數:
aKey - 鍵
另請參見:
getFocusAccelerator()

getFocusAccelerator

public char getFocusAccelerator()
返回將導致接收文本元件獲取焦點的加速鍵。如果沒有設置焦點加速鍵,則返回 '\0'。

返回:

read

public void read(Reader in,
                 Object desc)
          throws IOException
根據串流進行初始化。此方法創建一個適合於元件型別的模型,並根據串流初始化該模型。預設情況下,此方法將以純文本的方式載入該模型。該模型以前的內容將被丟棄。

參數:
in - 從中讀取的串流
desc - 描述串流的物件;此物件可以是一個字元串、一個 File、一個 URL 等。有些種類別的文檔(如 html)或許能夠使用此資訊;如果為非 null,則將其作為文檔的屬性添加
拋出:
IOException - 如果使用該串流初始化
另請參見:
EditorKit.createDefaultDocument(), setDocument(javax.swing.text.Document), PlainDocument

write

public void write(Writer out)
           throws IOException
將模型的內容存儲到給定的串流中。預設情況下,此方法將以純文本的方式存儲該模型。

參數:
out - 輸出串流
拋出:
IOException - 如果發生任何 I/O 錯誤

removeNotify

public void removeNotify()
從類別 JComponent 複製的描述
通知此元件它不再有父元件。調用此方法時,移除父元件鏈中所有已設置的 KeyboardAction

覆寫:
類別 JComponent 中的 removeNotify
另請參見:
JComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)

setCaretPosition

public void setCaretPosition(int position)
設置 TextComponent 的文本插入符的位置。注意,插入符可追蹤更改,所以如果元件的底層文本被更改,則此位置可能會移動。如果文檔為 null,則不執行任何操作。位置必須在 0 和元件的文本長度之間,否則將拋出異常。

參數:
position - 位置
拋出:
IllegalArgumentException - 如果 position 提供的值小於 0 或大於元件的文本長度

getCaretPosition

public int getCaretPosition()
返回文本元件的文本插入符的位置。

返回:
文本元件的文本插入符的位置,該值 >= 0

setText

public void setText(String t)
將此 TextComponent 文本設置為指定文本。如果該文本為 null 或空,則具有只刪除舊文本的效果。插入文本時,得到的插入符的位置由該插入符類別的實作確定。

雖然大多數 Swing 方法不是執行緒安全的,但此方法是執行緒安全的。有關更多資訊,請參閱 How to Use Threads。 注意,文本不是綁定屬性,所以更改時不觸發 PropertyChangeEvent。要偵聽文本的更改,請使用 DocumentListener

參數:
t - 要設置的新文本
另請參見:
getText(int, int), DefaultCaret

getText

public String getText()
返回此 TextComponent 中包含的文本。如果底層文檔為 null,則將給出 NullPointerException。注意,文本不是綁定屬性,所以更改時不觸發 PropertyChangeEvent。要偵聽文本的更改,請使用 DocumentListener

返回:
文本
拋出:
NullPointerException - 如果文檔為 null
另請參見:
setText(java.lang.String)

getSelectedText

public String getSelectedText()
返回此 TextComponent 中包含的選定文本。如果選定為 null 或文檔為空,則返回 null

返回:
文本
拋出:
IllegalArgumentException - 如果由於某種原因選定沒有到文檔的有效映射
另請參見:
setText(java.lang.String)

isEditable

public boolean isEditable()
返回指示此 TextComponent 是否可編輯的 boolean。

返回:
boolean 值
另請參見:
setEditable(boolean)

setEditable

public void setEditable(boolean b)
設置指定的 boolean 變數,以指示此 TextComponent 是否應該為可編輯的。當狀態更改時,將觸發 PropertyChange 事件("editable")。

參數:
b - 要設置的 boolean
另請參見:
isEditable()

getSelectionStart

public int getSelectionStart()
返回選定文本的起始位置。如果是空文檔,則返回 0;如果沒有選定,則返回點值。

返回:
起始位置,該值 >= 0

setSelectionStart

public void setSelectionStart(int selectionStart)
將選定起始點設置為指定的位置。新的起始點將限制在當前選定的結束點或之前。

這可用於在 java.awt.TextComponent 上調用此方法的程式碼向後相容。實作此方法以轉發給 Caret 實作,後者是維護實際選定的位置。

參數:
selectionStart - 文本的起始位置,該值 >= 0

getSelectionEnd

public int getSelectionEnd()
返回選定文本的結束位置。如果文本為空,則返回 0;如果沒有選擇,則返回點值。

返回:
結束位置,該值 >= 0

setSelectionEnd

public void setSelectionEnd(int selectionEnd)
將選擇結束點設置為指定的位置。新的結束點限制在當前選定開始位置處或之後。

這可用於在 java.awt.TextComponent 上調用此方法的程式碼向後相容。實作此方法以轉發 Caret 實作,後者是維護實際選定的位置。

參數:
selectionEnd - 文本的結束位置,該值 >= 0

select

public void select(int selectionStart,
                   int selectionEnd)
選定指定的開始和結束位置之間的文本。

此方法設置選定文本的開始位置和結束位置,並強行限制開始位置必須大於等於零。結束位置必須大於等於開始位置,並大於等於文本元件的文本長度。

如果調用者提供不一致或超出限度的值,則該方法靜默地實施這些限制,並且不會失敗。要特別指出的是,如果開始位置或結束位置大於文本長度,則將它重置為等於文本長度。如果開始位置小於零,則將它重置為零,如果結束位置小於開始位置,則將它重置為開始位置。

此調用是為向後相容性提供的。將其作為調用 setCaretPosition 的途徑,接著再調用 moveCaretPosition。管理選定的首選方法是直接調用這些方法。

參數:
selectionStart - 文本的起始位置
selectionEnd - 文本的結束位置
另請參見:
setCaretPosition(int), moveCaretPosition(int)

selectAll

public void selectAll()
選擇 TextComponent 中的所有文本。在 null 或空文檔上不執行任何操作。


getToolTipText

public String getToolTipText(MouseEvent event)
返回用作 event 的工具提示的字元串。這將返回以下內容之一:
  1. 如果 setToolTipText 已使用非 null 值調用,則它將被返回;否則
  2. 在 UI 上調用 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)

getPreferredScrollableViewportSize

public Dimension getPreferredScrollableViewportSize()
返回視圖元件視口的首選大小。實作此方法以執行返回元件的首選大小的預設行為。

指定者:
介面 Scrollable 中的 getPreferredScrollableViewportSize
返回:
其視圖為此 ScrollableJViewportpreferredSize
另請參見:
JComponent.getPreferredSize()

getScrollableUnitIncrement

public int getScrollableUnitIncrement(Rectangle visibleRect,
                                      int orientation,
                                      int direction)
顯示邏輯行或列的元件應計算滾動增量,它將根據方向的值完全公開一個新的行或列。理想情況下,元件應通過返回需要的距離來處理一個部分公開的行或列,以便完全公開此項。

此操作的預設實作是只返回可視區域的 10%。子類別或許能夠提供一個更加合理的值。

指定者:
介面 Scrollable 中的 getScrollableUnitIncrement
參數:
visibleRect - 視口中可見的視圖區域
orientation - SwingConstants.VERTICALSwingConstants.HORIZONTAL
direction - 小於零向上/左滾動,大於零向下/右滾動
返回:
在指定方向滾動的“單位”增量
拋出:
IllegalArgumentException - 如果方向無效
另請參見:
JScrollBar.setUnitIncrement(int)

getScrollableBlockIncrement

public int getScrollableBlockIncrement(Rectangle visibleRect,
                                       int orientation,
                                       int direction)
顯示邏輯行或列的元件應計算滾動增量,它將根據方向的值完全公開一個行塊或列塊。

此操作的預設實作是只返回可視區域。子類別將或許能夠提供一個更加合理的值。

指定者:
介面 Scrollable 中的 getScrollableBlockIncrement
參數:
visibleRect - 視口中可見的視圖區域
orientation - SwingConstants.VERTICALSwingConstants.HORIZONTAL
direction - 小於零向上/左滾動,大於零向下/右滾動
返回:
在指定方向滾動的“塊”增量
另請參見:
JScrollBar.setBlockIncrement(int)

getScrollableTracksViewportWidth

public boolean getScrollableTracksViewportWidth()
如果視口總是強制此 Scrollable 的寬度與視口寬度比對,則返回 true。例如,支持換行的正常文本視圖在這裡將返回 true,因為不希望讓換行內容超出視口右邊界而無法顯示。注意,其祖先為 JScrollPaneScrollable 返回 true 可有效地禁用水平滾動。

類似於 JViewport 的滾動容器在每次進行驗證時都將使用此方法。

指定者:
介面 Scrollable 中的 getScrollableTracksViewportWidth
返回:
如果視口應該強制 Scrollable 寬度與其自身寬度相比對,則返回 true

getScrollableTracksViewportHeight

public boolean getScrollableTracksViewportHeight()
如果視口總是強制此 Scrollable 的高度與視口高度比對,則返回 true。例如,縱行文本視圖(按列從左向右串流入文本)通過在此處返回 true 可有效地禁用垂直滾動。

類似於 JViewport 的滾動容器在每次進行驗證時都將使用此方法。

指定者:
介面 Scrollable 中的 getScrollableTracksViewportHeight
返回:
如果視口強制 Scrollable 高度與其自身高度比對,則返回 true

print

public boolean print()
              throws PrinterException
一個便捷列印方法,它顯示列印對話框,然後在交互 網要下列印此 JTextComponent,不列印標題和腳注文本。註:列印完成前此方法將阻塞。

註:在 headless 網要下,不顯示對話框。

此方法調用功能完備的 print 方法執行列印。

返回:
除非使用者取消了列印,否則返回 true
拋出:
PrinterException - 如果列印系統中發生導致列印中斷的錯誤
SecurityException - 如果不允許此執行緒初始化列印作業請求
從以下版本開始:
1.6
另請參見:
print(MessageFormat, MessageFormat, boolean, PrintService, PrintRequestAttributeSet, boolean)

print

public boolean print(MessageFormat headerFormat,
                     MessageFormat footerFormat)
              throws PrinterException
一個便捷列印方法,它顯示列印對話框,然後在交互 網要下列印此 JTextComponent,列印指定的標題和腳注文本。注:列印完成前此方法將阻塞。

註:在 headless 網要下,不顯示對話框。

此方法調用功能完備的 print 方法執行列印。

參數:
headerFormat - 在 MessageFormat 中用作標題的文本,或者為 null,表示沒有標題
footerFormat - 在 MessageFormat 中用作腳注的文本,或者為 null,表示沒有腳注
返回:
除非使用者取消了列印,否則返回 true
拋出:
PrinterException - 如果列印系統中發生導致作業中斷的錯誤
SecurityException - 如果不允許此執行緒初始化列印作業請求
從以下版本開始:
1.6
另請參見:
print(MessageFormat, MessageFormat, boolean, PrintService, PrintRequestAttributeSet, boolean), MessageFormat

print

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 網要下,忽略 showPrintDialoginteractive 參數且不顯示對話框。

此方法確保在列印期間不改變 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 - 如果不允許此執行緒初始化列印作業請求
從以下版本開始:
1.6
另請參見:
getPrintable(java.text.MessageFormat, java.text.MessageFormat), MessageFormat, GraphicsEnvironment.isHeadless(), FutureTask

getPrintable

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
從以下版本開始:
1.6
另請參見:
Printable, PageFormat, Document.render(java.lang.Runnable)

getAccessibleContext

public AccessibleContext getAccessibleContext()
獲取與此 JTextComponent 關聯的 AccessibleContext。對於文本元件,AccessibleContext 採用 AccessibleJTextComponent 的形式。如有必要,可以創建一個新的 AccessibleJTextComponent 實例。

指定者:
介面 Accessible 中的 getAccessibleContext
覆寫:
類別 JComponent 中的 getAccessibleContext
返回:
充當此 JTextComponentAccessibleContextAccessibleJTextComponent

paramString

protected String paramString()
返回此 JTextComponent 的字元串表示形式。此方法僅在進行除錯的時候使用,返回的字元串的內容和格式在各種實作間可能有所不同。返回的字元串可以為空,但不可以為 null

覆寫 paramString 來提供有關 JFC 元件的一些特定新方面的資訊。

覆寫:
類別 JComponent 中的 paramString
返回:
JTextComponent 的字元串表示形式

processInputMethodEvent

protected void processInputMethodEvent(InputMethodEvent e)
從類別 Component 複製的描述
處理元件上發生的輸入方法事件,方法是將其指派到任意已註冊的 InputMethodListener 物件。

如果元件上沒有啟用輸入方法事件,則不調用此方法。發生下列之一時啟用輸入方法事件:

注意,如果事件參數為 null,則未指定行為並且可能導致異常。

覆寫:
類別 Component 中的 processInputMethodEvent
參數:
e - 輸入方法事件
另請參見:
InputMethodEvent, InputMethodListener, Component.addInputMethodListener(java.awt.event.InputMethodListener), Component.enableEvents(long)

getInputMethodRequests

public InputMethodRequests getInputMethodRequests()
從類別 Component 複製的描述
獲取輸入方法請求處理程序,該處理程序支持此元件輸入方法發出的請求。支持當場文本輸入的元件必須覆寫此方法,以便返回一個 InputMethodRequests 實例。同時,還必須處理輸入方法事件。

覆寫:
類別 Component 中的 getInputMethodRequests
返回:
元件的輸入方法請求處理程序,預設為 null
另請參見:
Component.addInputMethodListener(java.awt.event.InputMethodListener)

addInputMethodListener

public void addInputMethodListener(InputMethodListener l)
從類別 Component 複製的描述
添加指定的輸入方法偵聽器,以接收發自此元件的輸入方法事件。如果元件還覆寫了 getInputMethodRequests 並返回一個 InputMethodRequests 實例,則該元件只接收發自輸入方法的輸入方法事件。如果偵聽器 lnull,則不會拋出異常並且不執行動作。

有關 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