JavaTM 2 Platform
Standard Ed. 6

javax.swing
類別 JEditorPane

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

public class JEditorPane
extends JTextComponent

可編輯各種內容的文本元件。有關基礎知識資訊和使用編輯器窗格的範例,請參閱 The Java Tutorial 中的 Using Text Components 一節。

此元件使用 EditorKit 的實作來完成其操作。對於給予它的各種內容,它能有效地將其形態變換為適當的文本編輯器種類別。該編輯器在任意給定時間的內容型別都由當前已安裝的 EditorKit 確定。如果將內容設置為新的 URL,則使用其型別來確定載入該內容所應使用的 EditorKit

預設情況下,已知下列內容型別:

text/plain
純文本,即無法識別給定的型別時所使用的預設值。在此情況下使用的工具套件是 DefaultEditorKit 的擴展,可產生有換行的純文本視圖。
text/html
HTML 文本。在此情況下使用的工具套件是類別 javax.swing.text.html.HTMLEditorKit,支持 HTML 3.2。
text/rtf
RTF 文本。在此情況下使用的工具套件是類別 javax.swing.text.rtf.RTFEditorKit,它提供了對多樣化文本格式 (Rich Text Format) 的有限支持。

有多種方式可將內容載入到此元件中。

  1. 可使用 setText 方法來初始化字元串元件。在這種情況下,將使用當前的 EditorKit,且此型別為期望的內容型別。
  2. 可使用 read 方法來初始化 Reader 元件。注意,如果內容型別為 HTML,那麼只有使用了 <base> 標記,或者設置了 HTMLDocument 上的 Base 屬性時才能解析相關的參考(例如對於類似圖像等內容)。在這種情況下,將使用當前的 EditorKit,且此型別為期望的內容型別。
  3. 可使用 setPage 方法來初始化 URL 元件。在這種情況下,將根據該 URL 來確定內容型別,並且設置為該內容型別所註冊的 EditorKit

某些內容型別可能通過產生超連接事件來提供對超連接的支持。如果 JEditorPane不可編輯的(已調用了 JEditorPane.setEditable(false);),則 HTML EditorKit 將產生超連接事件。如果文檔中嵌入了 HTML frame,則典型的回應是更改當前文檔的某一部分。以下程式碼片段是一種可能的超連接偵聽器實作,它特殊對待 HTML frame 事件,並且簡單地顯示其他所有已啟動的超連接。


     class Hyperactive implements HyperlinkListener {
 
         public void hyperlinkUpdate(HyperlinkEvent e) {
             if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
                 JEditorPane pane = (JEditorPane) e.getSource();
                 if (e instanceof HTMLFrameHyperlinkEvent) {
                     HTMLFrameHyperlinkEvent  evt = (HTMLFrameHyperlinkEvent)e;
                     HTMLDocument doc = (HTMLDocument)pane.getDocument();
                     doc.processHTMLFrameHyperlinkEvent(evt);
                 } else {
                     try {
                         pane.setPage(e.getURL());
                     } catch (Throwable t) {
                         t.printStackTrace();
                     }
                 }
             }
         }
     }

 

有關自定義如何呈現 text/html 的資訊,請參閱 W3C_LENGTH_UNITSHONOR_DISPLAY_PROPERTIES

某些文檔中與文化相關的資訊是通過一種稱為字元編碼的機制來處理的。字元編碼是字元集的成員(字母、象形文字、數字、符號或控制函數)和具體數字程式碼值的明確映射關係。它表示了檔案的存儲方式。字元編碼有 ISO-8859-1、ISO-8859-5、Shift-jis、Euc-jp 和 UTF-8。將檔案傳遞給使用者代理 (JEditorPane) 時,該檔案被轉換為文檔字元集 (ISO-10646 aka Unicode)。

有多種方式可獲得使用 JEditorPane 時所用的字元集映射關係。

  1. 一種方式是將字元集指定為 MIME 型別的參數。通過調用 setContentType 方法來建立此方式。如果通過 setPage 方法載入內容,則其內容型別已根據 URL 的規範進行了設置。如果直接載入檔案,則期望在載入前就已設置內容型別。
  2. 指定字元集的另一種方式是在該文檔內指定。這需要在確定所需的字元集之前讀取該文檔。要處理此情況,需要 EditorKit.read 操作拋出將要被捕獲的 ChangedCharSetException。然後使用新的 Reader 重新開始該 read 操作,該 Reader 使用 ChangedCharSetException(這是一個 IOException)中所指定的字元集。

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

警告: Swing 不是執行緒安全的。有關更多資訊,請參閱 Swing's Threading Policy

警告:此類別的序列化物件與以後的 Swing 版本不相容。當前序列化支持適用於短期存儲,或適用於在運行相同 Swing 版本的應用程序之間進行 RMI(Remote Method Invocation,遠端方法調用)。從 1.4 版本開始,已在 java.beans 套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder


巢狀類別摘要
protected  class JEditorPane.AccessibleJEditorPane
          此類別實作對 JEditorPane 類別的可存取性支持。
protected  class JEditorPane.AccessibleJEditorPaneHTML
          此類別提供了對 AccessibleHypertext 的支持,並且用於這類別實例中:在此 JEditorPane 中安裝的 EditorKit 是一個 HTMLEditorKit 實例。
protected  class JEditorPane.JEditorPaneAccessibleHypertextSupport
          AccessibleJEditorPaneHTML.getAccessibleText 返回的內容。
 
從類別 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 HONOR_DISPLAY_PROPERTIES
          用於客戶機屬性的關鍵字,指示如果在樣式化文本中未指定字體或前景色,那麼是否使用該元件的預設字體和前景色。
static String W3C_LENGTH_UNITS
          用於客戶機屬性的關鍵字,指示是否為 html 呈現使用 w3c 相容的長度單位。
 
從類別 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
 
從介面 java.awt.image.ImageObserver 繼承的欄位
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
建構子摘要
JEditorPane()
          創建一個新的 JEditorPane
JEditorPane(String url)
          根據包含 URL 規範的字元串創建一個 JEditorPane
JEditorPane(String type, String text)
          創建一個已初始化為給定檔案的 JEditorPane
JEditorPane(URL initialPage)
          根據用作輸入的指定 URL 創建一個 JEditorPane
 
方法摘要
 void addHyperlinkListener(HyperlinkListener listener)
          為了通知所有的更改(例如選中和進入某個連接)而添加一個超連接偵聽器。
protected  EditorKit createDefaultEditorKit()
          首次創建元件時,創建預設的編輯器工具套件 (PlainEditorKit)。
static EditorKit createEditorKitForContentType(String type)
          根據預設的編輯器工具套件註冊表為給定的型別創建處理程序。
 void fireHyperlinkUpdate(HyperlinkEvent e)
          通知因對此事件型別的通知感興趣而已註冊的所有偵聽器。
 AccessibleContext getAccessibleContext()
          獲取與此 JEditorPane 關聯的 AccessibleContext。
 String getContentType()
          獲得設置此編輯器當前要處理的內容型別。
 EditorKit getEditorKit()
          獲取用於處理內容的、當前已安裝的工具套件。
static String getEditorKitClassNameForContentType(String type)
          返回當前向型別 type 所註冊的 EditorKit 類別名。
 EditorKit getEditorKitForContentType(String type)
          獲取用於給定內容型別的編輯器工具套件。
 HyperlinkListener[] getHyperlinkListeners()
          返回使用 addHyperlinkListener() 添加到此 JEditorPane 的所有 HyperLinkListener 的陣列。
 URL getPage()
          獲得當前正在顯示的 URL。
 Dimension getPreferredSize()
          返回該 JEditorPane 的首選大小。
 boolean getScrollableTracksViewportHeight()
          如果某個視口始終應該強迫此 Scrollable 的高度符合該視口的高度,則返回 true。
 boolean getScrollableTracksViewportWidth()
          如果某個視口始終應該強迫此 Scrollable 的寬度符合該視口的寬度,則返回 true。
protected  InputStream getStream(URL page)
          獲取給定 URL 的串流,該 URL 是將要由 setPage 方法載入的。
 String getText()
          根據此編輯器的內容型別返回此 TextComponent 中所包含的文本。
 String getUIClassID()
          獲得該 UI 的類別 ID。
protected  String paramString()
          返回此 JEditorPane 的字元串表示形式。
 void read(InputStream in, Object desc)
          此方法根據串流進行初始化。
static void registerEditorKitForContentType(String type, String classname)
          建立 typeclassname 的預設綁定。
static void registerEditorKitForContentType(String type, String classname, ClassLoader loader)
          建立 typeclassname 的預設綁定。
 void removeHyperlinkListener(HyperlinkListener listener)
          移除超連接偵聽器。
 void replaceSelection(String content)
          用由給定字元串表示的新內容替換當前選中的內容。
 void scrollToReference(String reference)
          將視圖滾動到給定的參考位置(也就是正在顯示的 URL 的 UL.getRef 方法所返回的值)。
 void setContentType(String type)
          設置此編輯器所處理的內容型別。
 void setEditorKit(EditorKit kit)
          設置當前為處理內容而安裝的工具套件。
 void setEditorKitForContentType(String type, EditorKit k)
          直接設置用於給定型別的編輯器工具套件。
 void setPage(String url)
          設置當前要顯示的 URL。
 void setPage(URL page)
          設置當前要顯示的 URL。
 void setText(String t)
          將此 TextComponent 的文本設置為指定內容,預期以此編輯器的內容型別格式提供該內容。
 
從類別 javax.swing.text.JTextComponent 繼承的方法
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getActions, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paste, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDocument, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateUI, viewToModel, write
 
從類別 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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, 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
 

欄位詳細資訊

W3C_LENGTH_UNITS

public static final String W3C_LENGTH_UNITS
用於客戶機屬性的關鍵字,指示是否為 html 呈現使用 w3c 相容的長度單位。

預設不啟用此屬性;要啟用它,可將帶有此名稱的客戶機 property 設置為 Boolean.TRUE

從以下版本開始:
1.5
另請參見:
常數欄位值

HONOR_DISPLAY_PROPERTIES

public static final String HONOR_DISPLAY_PROPERTIES
用於客戶機屬性的關鍵字,指示如果在樣式化文本中未指定字體或前景色,那麼是否使用該元件的預設字體和前景色。

根據外觀的不同,該預設值有所不同;要啟用該屬性,可將帶有此名稱的客戶機 property 設置為 Boolean.TRUE

從以下版本開始:
1.5
另請參見:
常數欄位值
建構子詳細資訊

JEditorPane

public JEditorPane()
創建一個新的 JEditorPane。文檔模型被設置為 null


JEditorPane

public JEditorPane(URL initialPage)
            throws IOException
根據用作輸入的指定 URL 創建一個 JEditorPane

參數:
initialPage - URL
拋出:
IOException - 如果該 URL 為 null 或者無法存取

JEditorPane

public JEditorPane(String url)
            throws IOException
根據包含 URL 規範的字元串創建一個 JEditorPane

參數:
url - URL
拋出:
IOException - 如果該 URL 為 null 或者無法存取

JEditorPane

public JEditorPane(String type,
                   String text)
創建一個已初始化為給定檔案的 JEditorPane。這是調用 setContentTypesetText 方法的便捷建構子。

參數:
type - 給定文本的 mime 型別
text - 初始化所使用的文本;可能為 null
拋出:
NullPointerException - 如果 type 參數為 null
方法詳細資訊

addHyperlinkListener

public void addHyperlinkListener(HyperlinkListener listener)
為了通知所有的更改(例如選中和進入某個連接)而添加一個超連接偵聽器。

參數:
listener - 偵聽器

removeHyperlinkListener

public void removeHyperlinkListener(HyperlinkListener listener)
移除超連接偵聽器。

參數:
listener - 偵聽器

getHyperlinkListeners

public HyperlinkListener[] getHyperlinkListeners()
返回使用 addHyperlinkListener() 添加到此 JEditorPane 的所有 HyperLinkListener 的陣列。

返回:
已添加的所有 HyperLinkListener,如果尚未添加偵聽器,則返回一個空陣列
從以下版本開始:
1.4

fireHyperlinkUpdate

public void fireHyperlinkUpdate(HyperlinkEvent e)
通知因對此事件型別的通知感興趣而已註冊的所有偵聽器。如果支持超連接的內容型別當前處於啟動狀態並且使用了某個連接,則通常由當前已安裝的 EditorKit 調用此方法。從後向前處理偵聽器列表。

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

setPage

public void setPage(URL page)
             throws IOException
設置當前要顯示的 URL。設置該窗格的內容型別,並且如果該窗格的編輯器工具套件是非 null 的,則創建一個新的預設文檔並將 URL 讀入該文檔。如果該 URL 套件含並參考了位置,則通過調用 scrollToReference 方法滾動到該位置。如果所需的 URL 就是當前所顯示的,則不會重新載入該文檔。要強行重新載入某個文檔,必須清除該文檔的串流描述屬性。以下程式碼顯示了如何完成該任務:
   Document doc = jEditorPane.getDocument();
   doc.putProperty(Document.StreamDescriptionProperty, null);
 
如果所需的 URL 不是當前所顯示的,則調用 getStream 方法,讓子類別控制所提供的串流。

這可能會同步或非同步地載入,具體取決於 EditorKit 所返回的文檔。如果該 Document 的型別是 AbstractDocument 並且具有由大於或等於零的 AbstractDocument.getAsynchronousLoadPriority 返回的值,則使用該優先級將該頁面載入到單獨的執行緒中。

如果同步載入文檔,則先使用串流填充文檔,然後通過調用 setDocument 將其安裝到編輯器中,而該調用將觸發屬性更改事件。如果拋出 IOException,則丟棄部分載入的文檔,並且不觸發文檔和頁面屬性更改事件。如果成功載入並安裝了該文檔,則由 UI 為其建立一個視圖,如有必要,接著滾動該 UI,之後觸發頁面屬性更改事件。

如果非同步載入該文檔,則立即通過調用 setDocument (這會觸發文檔屬性更改事件)將該文檔安裝到編輯器中,然後創建一個執行緒,而該執行緒將開始執行實際的載入工作。在這種情況下,直接調用此方法不會觸發頁面屬性更改事件,而在執行緒載入結束時會觸發該事件。在事件排程執行緒上也會觸發該事件。因為調用執行緒無法在其他執行緒上出現失敗事件的情況下拋出 IOException,所以在其他執行緒完成任務時(不管載入是否成功)將觸發頁面屬性更改事件。

參數:
page - 頁面的 URL
拋出:
IOException - 對於 null 或無效的頁面規範,或者來自所讀取的串流的異常
另請參見:
getPage()

read

public void read(InputStream in,
                 Object desc)
          throws IOException
此方法根據串流進行初始化。如果工具套件被設置為 HTMLEditorKit 型別,並且 desc 參數是 HTMLDocument,則此方法調用 HTMLEditorKit 來初始化讀取。否則它調用以純文本的方式載入模型的父級類別方法。

參數:
in - 從中讀取的串流
desc - 描述串流的物件
拋出:
IOException - 由用於初始化的串流拋出
另請參見:
JTextComponent.read(java.io.Reader, java.lang.Object), JTextComponent.setDocument(javax.swing.text.Document)

getStream

protected InputStream getStream(URL page)
                         throws IOException
獲取給定 URL 的串流,該 URL 是將要由 setPage 方法載入的。預設情況下,這只是簡單地打開該 URL 並返回串流。可重新實作此方法以執行有用的任務,例如從快取記憶體中獲取串流、監視該串流的進程等等。

期望此方法具有的副作用是:建立該內容型別,從而設置載入串流所要使用的合適的 EditorKit

如果該串流為 http 連接,那麼接著會進行重定向,並將得到的 URL 設置為 Document.StreamDescriptionProperty,這樣即可正確地解析相關的 URL。

參數:
page - 頁面 URL
拋出:
IOException

scrollToReference

public void scrollToReference(String reference)
將視圖滾動到給定的參考位置(也就是正在顯示的 URL 的 UL.getRef 方法所返回的值)。預設情況下,此方法僅知道如何在 HTMLDocument 中定位一個參考位置。該實作調用 scrollRectToVisible 方法來完成實際的滾動。如果 HTML 之外的文檔型別需要滾動到參考位置,則應該重新實作此方法。如果元件不可見,則此方法無效。

參數:
reference - 要滾動到的指定位置

getPage

public URL getPage()
獲得當前正在顯示的 URL。如果在文檔創建中未指定 URL,則此方法返回 null,並且不解析相關的 URL。

返回:
URL,如果沒有,則返回 null

setPage

public void setPage(String url)
             throws IOException
設置當前要顯示的 URL。

參數:
url - 要顯示的 URL
拋出:
IOException - 對於 null 或無效的 URL 規範

getUIClassID

public String getUIClassID()
獲得該 UI 的類別 ID。

覆寫:
類別 JComponent 中的 getUIClassID
返回:
字元串 "EditorPaneUI"
另請參見:
JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)

createDefaultEditorKit

protected EditorKit createDefaultEditorKit()
首次創建元件時,創建預設的編輯器工具套件 (PlainEditorKit)。

返回:
編輯器工具套件

getEditorKit

public EditorKit getEditorKit()
獲取用於處理內容的、當前已安裝的工具套件。如有必要,可調用 createDefaultEditorKit 來安裝預設的工具套件。

返回:
編輯器工具套件

getContentType

public final String getContentType()
獲得設置此編輯器當前要處理的內容型別。將其定義為與當前已安裝的 EditorKit 相關聯的型別。

返回:
內容型別,如果沒有編輯器工具套件集,則返回 null

setContentType

public final void setContentType(String type)
設置此編輯器所處理的內容型別。如果可以成功地找到編輯器工具套件,則調用 getEditorKitForContentType,然後調用 setEditorKit。作為直接調用 setEditorKit 的一種替代方式,這是可用的最便捷的方法。

如果將字元集定義指定為內容型別規範的參數,則在使用關聯的 EditorKit 載入輸入串流時使用它。例如,如果 type 指定為 text/html; charset=EUC-JP,則用註冊為 text/htmlEditorKit 載入內容,並且提供給該 EditorKit 以便將 unicode 載入到文檔中的 Reader 將使用 EUC-JP 字元集轉換到 unicode。如果無法識別該 type,則使用為純文本 text/plain 註冊的 EditorKit 載入內容。

參數:
type - 支持內容編輯的非 null mime 型別
拋出:
NullPointerException - 如果 type 參數為 null
另請參見:
getContentType()

setEditorKit

public void setEditorKit(EditorKit kit)
設置當前為處理內容而安裝的工具套件。這是建立編輯器內容型別的綁定 (bound) 屬性。首先卸載所有舊的工具套件,然後如果 kit 不為 null,則安裝新的工具套件並為其創建預設文檔。調用 setEditorKit 時始終觸發 PropertyChange 事件 ("editorKit")。

註:這具有更改模型的副作用,因為 EditorKit 是模擬特定內容型別的方式的根源。此方法將導致代表調用者來調用 setDocument,以確保內部狀態的完整性。

參數:
kit - 所需的編輯器行為
另請參見:
getEditorKit()

getEditorKitForContentType

public EditorKit getEditorKitForContentType(String type)
獲取用於給定內容型別的編輯器工具套件。當請求的型別與當前已安裝的型別不比對時調用此方法。如果元件沒有為給定型別註冊的 EditorKit,則它會嘗試根據預設的 EditorKit 註冊表創建一個 EditorKit。如果創建失敗,則在假定所有文本文檔都可以表示為純文本的基礎上使用 PlainEditorKit

可重新實作此方法,以使用某個其他的註冊表型別。例如,可重新實作它以使用 Java Activation Framework。

參數:
type - 非 null 的內容型別
返回:
編輯器工具套件

setEditorKitForContentType

public void setEditorKitForContentType(String type,
                                       EditorKit k)
直接設置用於給定型別的編輯器工具套件。外觀實作可能結合使用此方法和 createEditorKitForContentType 為具有某種外觀偏好的內容型別安裝處理程序。

參數:
type - 非 null 的內容型別
k - 要設置的編輯器工具套件

replaceSelection

public void replaceSelection(String content)
用由給定字元串表示的新內容替換當前選中的內容。如果沒有選中的內容,那麼此操作就等效於插入給定文本。如果沒有替換文本(也就是 content 字元串為空或為 null),那麼就等效於移除當前的選擇。替換文本具有當前為輸入所定義的各種屬性。如果該元件是不可編輯的,則發出蜂鳴聲並返回。

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

覆寫:
類別 JTextComponent 中的 replaceSelection
參數:
content - 要替換選擇內容的內容。此值可以為 null

createEditorKitForContentType

public static EditorKit createEditorKitForContentType(String type)
根據預設的編輯器工具套件註冊表為給定的型別創建處理程序。如有必要,則創建註冊表。如果尚未載入已註冊的類別,則嘗試動態地載入針對給定型別的工具套件原型。如果已向某個 ClassLoader 註冊了該型別,則使用該 ClassLoader 載入該原型。如果沒有已註冊的 ClassLoader,則使用 Class.forName 載入該原型。

一旦成功地找到 EditorKit 實例,則複製它並返回該副本。

參數:
type - 內容型別
返回:
編輯器工具套件,如果沒有為給定型別註冊的工具套件,則返回 null

registerEditorKitForContentType

public static void registerEditorKitForContentType(String type,
                                                   String classname)
建立 typeclassname 的預設綁定。實際需要該類別時,將在稍後動態地載入該類別,並且在使用前可安全地更改,以避免載入不需要的類別。使用此方法註冊後,將使用 Class.forName 載入 EditorKit 原型。

參數:
type - 非 null 的內容型別
classname - 稍後載入的類別

registerEditorKitForContentType

public static void registerEditorKitForContentType(String type,
                                                   String classname,
                                                   ClassLoader loader)
建立 typeclassname 的預設綁定。實際需要該類別時,將在稍後使用給定的 ClassLoader 動態地載入該類別,並且在使用前可安全地更改,以避免載入不需要的類別。

參數:
type - 非 null 的內容型別
classname - 稍後載入的類別
loader - 用於載入該名稱的類別的 ClassLoader

getEditorKitClassNameForContentType

public static String getEditorKitClassNameForContentType(String type)
返回當前向型別 type 所註冊的 EditorKit 類別名。

參數:
type - 非 null 的內容型別
從以下版本開始:
1.3

getPreferredSize

public Dimension getPreferredSize()
返回該 JEditorPane 的首選大小。JEditorPane 的首選大小與父級類別的首選大小稍微有所不同。如果視口 (viewport) 的大小已經小於元件的最低大小,則用於追蹤寬度或高度的可滾動定義將變為 false。預設的視口佈局將給出首選大小,並且該大小在可滾動定義正在進行追蹤的情況下是不需要的。在這種情況下,將正常的 首選大小調整為最低大小。這就允許將 HTML 表縮小為其最低大小,然後以其最低大小進行佈局,而不再做進一步的縮小。

覆寫:
類別 JComponent 中的 getPreferredSize
返回:
包含首選大小的 Dimension
另請參見:
JComponent.setPreferredSize(java.awt.Dimension), ComponentUI

setText

public void setText(String t)
將此 TextComponent 的文本設置為指定內容,預期以此編輯器的內容型別格式提供該內容。例如,如果將型別設置為 text/html,則應按照 HTML 指定該字元串。

實作此方法可移除當前文檔的內容,並通過使用當前的 EditorKit 分析給定字元串來替換該內容。這提供了父級類別的語義,方法是不更改模型,同時支持當前在此元件上所設置的內容型別。前提是以前的內容相對較少,並且以前的內容沒有副作用。可以違反這兩個前提,但這會導致不需要的結果。為了避免發生此情況,可用 getEditorKit().createDefaultDocument() 創建一個新文檔,並用該新文檔替換現有的 Document。然後就可以確保以前的 Document 沒有任何遺留的狀態。

  1. 保留現有的模型意味著去除舊的視圖,並創建一個新視圖,而替換文檔則可避免去除舊的視圖。
  2. 某些格式(如 HTML)可將各種內容放入文檔,而這些內容可以影響以後的內容。HTML 可以具有嵌入的樣式資訊,這將意外地影響後面安裝的內容。

載入帶有字元串的此元件的另一種方式是創建一個 StringReader 並調用 read 方法。在這種情況下,使用字元串內容初始化模型後將替換該模型。

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

覆寫:
類別 JTextComponent 中的 setText
參數:
t - 要設置的新文本;如果為 null,則刪除舊的文本
另請參見:
getText()

getText

public String getText()
根據此編輯器的內容型別返回此 TextComponent 中所包含的文本。如果試圖檢索文本的同時拋出異常,則返回 null。實作此方法以調用帶有 StringWriterJTextComponent.write

覆寫:
類別 JTextComponent 中的 getText
返回:
文本
另請參見:
setText(java.lang.String)

getScrollableTracksViewportWidth

public boolean getScrollableTracksViewportWidth()
如果某個視口始終應該強迫此 Scrollable 的寬度符合該視口的寬度,則返回 true。

指定者:
介面 Scrollable 中的 getScrollableTracksViewportWidth
覆寫:
類別 JTextComponent 中的 getScrollableTracksViewportWidth
返回:
如果某個視口始終應該強迫 Scrollable 的寬度符合其寬度,則返回 true;否則返回 false

getScrollableTracksViewportHeight

public boolean getScrollableTracksViewportHeight()
如果某個視口始終應該強迫此 Scrollable 的高度符合該視口的高度,則返回 true。

指定者:
介面 Scrollable 中的 getScrollableTracksViewportHeight
覆寫:
類別 JTextComponent 中的 getScrollableTracksViewportHeight
返回:
如果某個視口始終應該強迫 Scrollable 的高度符合其高度,則返回 true;否則返回 false

paramString

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

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

getAccessibleContext

public AccessibleContext getAccessibleContext()
獲取與此 JEditorPane 關聯的 AccessibleContext。對於編輯器窗格,AccessibleContext 採用 AccessibleJEditorPane 的形式。必要時創建新的 AccessibleJEditorPane 實例。

指定者:
介面 Accessible 中的 getAccessibleContext
覆寫:
類別 JTextComponent 中的 getAccessibleContext
返回:
AccessibleJEditorPane,充當此 JEditorPane 的 AccessibleContext

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only