JavaTM 2 Platform
Standard Ed. 6

javax.swing.text
類別 StyleContext

java.lang.Object
  繼承者 javax.swing.text.StyleContext
所有已實作的介面:
Serializable, AbstractDocument.AttributeContext
直接已知子類別:
StyleSheet

public class StyleContext
extends Object
implements Serializable, AbstractDocument.AttributeContext

樣式池及其關聯的資源。此類別用於確定資源組的生存期,假定該資源組是一個容器,它保持各種資源的快取記憶體,這些資源(如字體和顏色等)通過各種樣式定義得以重用。如果需要最大化相關資源的共享,則可由多個文檔來共享此類別。

此類別還對小屬性集提供有效支持,並通過共享和利用其不變的特性來壓縮這些小屬性集。因為許多樣式都是重複的,所以共享的潛能非常大,而且複製成本也相當低廉。較大的集合降低了共享的可能性,並因此自動轉換回一種空間利用率低的實作。

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


巢狀類別摘要
 class StyleContext.NamedStyle
          通常用於表示字元和段落樣式的屬性集合。
 class StyleContext.SmallAttributeSet
          此類別可在陣列中存儲少量的屬性。
 
欄位摘要
static String DEFAULT_STYLE
          賦予與段落相關的預設邏輯樣式的名稱。
 
建構子摘要
StyleContext()
          創建新的 StyleContext 物件。
 
方法摘要
 AttributeSet addAttribute(AttributeSet old, Object name, Object value)
          向給定的集合中添加屬性,並返回新的有代表性的集合。
 AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
          向元素添加屬性集。
 void addChangeListener(ChangeListener l)
          添加一個偵聽器,以追蹤何時添加或刪除樣式。
 Style addStyle(String nm, Style parent)
          將新的樣式添加到樣式層次中。
protected  MutableAttributeSet createLargeAttributeSet(AttributeSet a)
          創建一個以空間來換取時間的大屬性集合。
protected  StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
          創建一個可能用於共享的壓縮屬性集。
 Color getBackground(AttributeSet attr)
          使用一個屬性集並將其轉換成為一個背景色規範。
 ChangeListener[] getChangeListeners()
          返回使用 addChangeListener() 添加到此 StyleContext 中的所有 ChangeListener 組成的陣列。
protected  int getCompressionThreshold()
          返回鍵/值對的最大數目,嘗試將其壓縮到一個惟一/不可變的集合中。
static StyleContext getDefaultStyleContext()
          返回由所有文檔共享的預設 AttributeContext,這些文檔不影響定義/提供其自己的上下文。
 AttributeSet getEmptySet()
          獲取空 AttributeSet。
 Font getFont(AttributeSet attr)
          從屬性集中獲取字體。
 Font getFont(String family, int style, int size)
          獲取新字體。
 FontMetrics getFontMetrics(Font f)
          獲取某種字體的字體規格。
 Color getForeground(AttributeSet attr)
          使用一個屬性集並將其轉換成為一個前景色規範。
static Object getStaticAttribute(Object key)
          返回以前用 registerStaticAttributeKey 註冊的物件。
static Object getStaticAttributeKey(Object key)
          返回其 key 將要註冊的 String
 Style getStyle(String nm)
          獲取以前添加到文檔中的已命名樣式
 Enumeration<?> getStyleNames()
          獲取定義的樣式名稱。
 void readAttributes(ObjectInputStream in, MutableAttributeSet a)
          讀入屬性的特定於上下文的處理。
static void readAttributeSet(ObjectInputStream in, MutableAttributeSet a)
          從以前通過 writeAttributeSet 寫出的給定物件輸入串流中讀取一個屬性集。
 void reclaim(AttributeSet a)
          返回 MutableAttributeSet 實作不再需要的集合。
static void registerStaticAttributeKey(Object key)
          將一個物件註冊為用作屬性集中的一個鍵的靜態物件。
 AttributeSet removeAttribute(AttributeSet old, Object name)
          從集合中移除一個屬性。
 AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
          移除元素的屬性集。
 AttributeSet removeAttributes(AttributeSet old, Enumeration<?> names)
          移除元素的一個屬性集。
 void removeChangeListener(ChangeListener l)
          移除一個追蹤正被添加或移除樣式的偵聽器。
 void removeStyle(String nm)
          移除以前添加到文檔中的已命名樣式。
 String toString()
          將 StyleContext 轉換成為 String。
 void writeAttributes(ObjectOutputStream out, AttributeSet a)
          寫出屬性的特定於上下文的處理。
static void writeAttributeSet(ObjectOutputStream out, AttributeSet a)
          將屬性集寫入到給定的物件串流以便序列化。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

DEFAULT_STYLE

public static final String DEFAULT_STYLE
賦予與段落相關的預設邏輯樣式的名稱。

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

StyleContext

public StyleContext()
創建新的 StyleContext 物件。

方法詳細資訊

getDefaultStyleContext

public static final StyleContext getDefaultStyleContext()
返回由所有文檔共享的預設 AttributeContext,這些文檔不影響定義/提供其自己的上下文。

返回:
上下文

addStyle

public Style addStyle(String nm,
                      Style parent)
將新的樣式添加到樣式層次中。樣式屬性自下向上進行解析,所以在子級中指定的屬性將覆寫父級中指定的屬性。

參數:
nm - 樣式的名稱(其在文檔中命名樣式的集合內必須是惟一的)。如果樣式未命名,則此名稱可能為 null,但是調用者要負責管理返回的參考,因為未命名的樣式不能通過其名稱獲取。未命名的樣式可以用於諸如字元屬性覆寫這樣的情況(例如在樣式運行中)。
parent - 父樣式。如果未指定的屬性不需要以其他樣式解析,則此值可以為 null。
返回:
創建的樣式

removeStyle

public void removeStyle(String nm)
移除以前添加到文檔中的已命名樣式。

參數:
nm - 要移除的樣式名稱

getStyle

public Style getStyle(String nm)
獲取以前添加到文檔中的已命名樣式

參數:
nm - 樣式名稱
返回:
樣式

getStyleNames

public Enumeration<?> getStyleNames()
獲取定義的樣式名稱。

返回:
以列舉形式返回名稱列表

addChangeListener

public void addChangeListener(ChangeListener l)
添加一個偵聽器,以追蹤何時添加或刪除樣式。

參數:
l - 更改偵聽器

removeChangeListener

public void removeChangeListener(ChangeListener l)
移除一個追蹤正被添加或移除樣式的偵聽器。

參數:
l - 更改偵聽器

getChangeListeners

public ChangeListener[] getChangeListeners()
返回使用 addChangeListener() 添加到此 StyleContext 中的所有 ChangeListener 組成的陣列。

返回:
所有添加的 ChangeListener,或者在沒有添加偵聽器時返回一個空陣列
從以下版本開始:
1.4

getFont

public Font getFont(AttributeSet attr)
從屬性集中獲取字體。實作此方法以便嘗試為給定的 AttributeSet 獲取快取記憶體字體,如果嘗試失敗,將解析字體特徵,然後從低層級字體快取記憶體中獲取字體。

參數:
attr - 屬性集
返回:
字體

getForeground

public Color getForeground(AttributeSet attr)
使用一個屬性集並將其轉換成為一個前景色規範。此方法可以用於指定諸如更亮、更鮮艷等之類別的內容。在預設情況下,它只返回由 StyleConstants.Foreground 屬性指定的值。

參數:
attr - 屬性集
返回:
顏色

getBackground

public Color getBackground(AttributeSet attr)
使用一個屬性集並將其轉換成為一個背景色規範。此方法可以用於指定諸如更亮、更鮮艷等之類別的內容。在預設情況下,它只返回由 StyleConstants.Background 屬性指定的值。

參數:
attr - 屬性集
返回:
顏色

getFont

public Font getFont(String family,
                    int style,
                    int size)
獲取新字體。如果存在快取記憶體字體,則從快取記憶體中返回一種 Font。如果快取記憶體中不存在,則向快取記憶體中添加一種字體。這基本上是一個針對 1.1 字體特徵的低層級別快取記憶體。

參數:
family - 字體系列(如 "Monospaced")
style - 字體的樣式(比如 Font.PLAIN)
size - 點大小,該值 >= 1
返回:
新字體

getFontMetrics

public FontMetrics getFontMetrics(Font f)
獲取某種字體的字體規格。

參數:
f - 字體
返回:
規格

addAttribute

public AttributeSet addAttribute(AttributeSet old,
                                 Object name,
                                 Object value)
向給定的集合中添加屬性,並返回新的有代表性的集合。

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

指定者:
介面 AbstractDocument.AttributeContext 中的 addAttribute
參數:
old - 原有屬性集
name - 非 null 屬性名稱
value - 屬性值
返回:
更新後的屬性集
另請參見:
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)

addAttributes

public AttributeSet addAttributes(AttributeSet old,
                                  AttributeSet attr)
向元素添加屬性集。

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

指定者:
介面 AbstractDocument.AttributeContext 中的 addAttributes
參數:
old - 原有屬性集
attr - 要添加的屬性
返回:
更新後的屬性集
另請參見:
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)

removeAttribute

public AttributeSet removeAttribute(AttributeSet old,
                                    Object name)
從集合中移除一個屬性。

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

指定者:
介面 AbstractDocument.AttributeContext 中的 removeAttribute
參數:
old - 原有的屬性集
name - 非 null 屬性名稱
返回:
更新後的屬性集
另請參見:
MutableAttributeSet.removeAttribute(java.lang.Object)

removeAttributes

public AttributeSet removeAttributes(AttributeSet old,
                                     Enumeration<?> names)
移除元素的一個屬性集。

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

指定者:
介面 AbstractDocument.AttributeContext 中的 removeAttributes
參數:
old - 原有屬性集
names - 屬性名
返回:
更新後的屬性集
另請參見:
MutableAttributeSet.removeAttributes(java.util.Enumeration)

removeAttributes

public AttributeSet removeAttributes(AttributeSet old,
                                     AttributeSet attrs)
移除元素的屬性集。

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

指定者:
介面 AbstractDocument.AttributeContext 中的 removeAttributes
參數:
old - 原有屬性集
attrs - 屬性
返回:
更新後的屬性集
另請參見:
MutableAttributeSet.removeAttributes(java.util.Enumeration)

getEmptySet

public AttributeSet getEmptySet()
獲取空 AttributeSet。

指定者:
介面 AbstractDocument.AttributeContext 中的 getEmptySet
返回:
集合

reclaim

public void reclaim(AttributeSet a)
返回 MutableAttributeSet 實作不再需要的集合。因為在 1.1 以下沒有弱參考,所以這對於操作很有用。此方法通常由 MutableAttributeSet 實作的初始化方法所調用。

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

指定者:
介面 AbstractDocument.AttributeContext 中的 reclaim
參數:
a - 要回收的集合

getCompressionThreshold

protected int getCompressionThreshold()
返回鍵/值對的最大數目,嘗試將其壓縮到一個惟一/不可變的集合中。此限制之上的任何集合都將使用雜湊表並且將成為一個 MutableAttributeSet。

返回:
閾值

createSmallAttributeSet

protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
創建一個可能用於共享的壓縮屬性集。這是想要改變 SmallAttributeSet 行為的子類別的一個鉤子。重新實作此方法以返回提供某種屬性轉換的 AttributeSet。

參數:
a - 以壓縮形式表示的屬性集。

createLargeAttributeSet

protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
創建一個以空間來換取時間的大屬性集合。此集合將不共享。這是想要改變更大屬性存儲樣式(預設情況下是 SimpleAttributeSet)的子類別的一個鉤子。重新實作此方法以返回提供某種屬性轉換的 MutableAttributeSet。

參數:
a - 以更大形式表示的屬性集。

toString

public String toString()
將 StyleContext 轉換成為 String。

覆寫:
類別 Object 中的 toString
返回:
字元串

writeAttributes

public void writeAttributes(ObjectOutputStream out,
                            AttributeSet a)
                     throws IOException
寫出屬性的特定於上下文的處理。

拋出:
IOException

readAttributes

public void readAttributes(ObjectInputStream in,
                           MutableAttributeSet a)
                    throws ClassNotFoundException,
                           IOException
讀入屬性的特定於上下文的處理。

拋出:
ClassNotFoundException
IOException

writeAttributeSet

public static void writeAttributeSet(ObjectOutputStream out,
                                     AttributeSet a)
                              throws IOException
將屬性集寫入到給定的物件串流以便序列化。此方法特別適用於處理使用 registerStaticAttributeKey 方法註冊的靜態屬性鍵。任何沒有註冊為靜態鍵的屬性鍵都將被直接序列化。期望將所有的值都序列化。

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

readAttributeSet

public static void readAttributeSet(ObjectInputStream in,
                                    MutableAttributeSet a)
                             throws ClassNotFoundException,
                                    IOException
從以前通過 writeAttributeSet 寫出的給定物件輸入串流中讀取一個屬性集。這將試圖將過去的靜態物件鍵恢復為當前虛擬機器中的靜態物件鍵(假定使用 registerStaticAttributeKey 方法只註冊了這些鍵)。從串流檢索的屬性將被放置到給定的可變集合中。

參數:
in - 用來讀取屬性資料的物件串流。
a - 放置屬性定義的屬性集
拋出:
ClassNotFoundException - 如果在讀取物件串流時遇到向上傳遞。
IOException - 如果在讀取物件串流時遇到向上傳遞。

registerStaticAttributeKey

public static void registerStaticAttributeKey(Object key)
將一個物件註冊為用作屬性集中的一個鍵的靜態物件。序列化時允許特殊對待這種鍵。

對於 1.1 版本以下的虛擬機器上的操作,這將使用由 toString 連接到類別名所返回的值。為了在稍後重新計算時保持一致,由 toString 所返回的值不應該套件含類別的參考(即應當從 Object 中的定義重新實作)。

參數:
key - 非 null 物件鍵

getStaticAttribute

public static Object getStaticAttribute(Object key)
返回以前用 registerStaticAttributeKey 註冊的物件。


getStaticAttributeKey

public static Object getStaticAttributeKey(Object key)
返回其 key 將要註冊的 String

另請參見:
getStaticAttribute(java.lang.Object), registerStaticAttributeKey(java.lang.Object)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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