|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.swing.text.StyleContext javax.swing.text.html.StyleSheet
public class StyleSheet
支持定義要呈現的 HTML 視圖的可視化特徵。該 StyleSheet 用於將 HTML 模型轉換為具有可視化特徵的視圖。此類別可自定義視圖的外觀、通過一個模型分別呈現多個視圖等等。該類別可以看作 CSS 規則的存儲資源庫。CSS 屬性的鍵是型別 CSS.Attribute 的物件。值型別由 StyleSheet 實作決定,但需要 toString
方法返回 CSS 值的字元串表示形式。
獲取其屬性的 HTML View 實作的主要入口點是 getViewAttributes 方法。通過創建所需的用來將屬性與視圖關聯的策略來實作這一方法。每個 HTMLEditorKit(也即每個關聯的 JEditorPane)都可以有其自己的 StyleSheet,但預設情況下,所有 HTMLEditorKit 實例都將共享一個表。HTMLDocument 實例還可以有一個 StyleSheet,它用來存儲特定於文檔的 CSS 規範。
為使 View 存儲較少的狀態並因此變得更輕量級,StyleSheet 可充當處理某些呈現任務的 painter 的處理器。此方法允許實作來確定要快取記憶體的內容,以及在選擇器通常為多視圖的級別上可能共享的內容。由於 StyleSheet 可以由導向多個文檔的視圖使用,並且通常 HTML 屬性不影響使用的選擇器,所以共享選擇器的可能性非常大。
這些規則是按指定樣式存儲的,並且還存儲了其他資訊以便將元素的上下文快速轉換為一個規則。以下程式碼片段將顯示指定的樣式,以及由此所包含的 CSS 規則。
import java.util.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
public class ShowStyles {
public static void main(String[] args) {
HTMLEditorKit kit = new HTMLEditorKit();
HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();
StyleSheet styles = doc.getStyleSheet();
Enumeration rules = styles.getStyleNames();
while (rules.hasMoreElements()) {
String name = (String) rules.nextElement();
Style rule = styles.getStyle(name);
System.out.println(rule.toString());
}
System.exit(0);
}
}
此語義用於 CSS 樣式未良好定義的情況,在這種情況下,CSS 樣式應根據元素的定義覆寫可視屬性。例如,html <body bgcolor=red>
將使主體呈現為紅色背景。但如果該 html 檔案還包含 CSS 規則 body { background:blue }
,則該主體的背景就沒有它該呈現的顏色清晰了。當前的實作為在元素中定義的可視屬性提供了最高優先權,也就是說在應用任何樣式之前都要先檢查它們。因此,在前面的範例中,當主體元素將背景顏色定義為紅色時,其背景也將成為紅色。
正如前面提到的那樣,此方法支持 CSS。我們不提供對所有 CSS 規範的支持。請參考 CSS 類別的 javadoc 以查看我們支持的屬性。我們當前不支持的兩種主要的 CSS 解析相關的概念是偽選擇器,如 A:link { color:red }
和 important
修飾符。
註:此實作目前尚不完整。可以使用完整的替代實作來取代它。此類別的未來版本將提供更好的 CSS 支持。
巢狀類別摘要 | |
---|---|
static class |
StyleSheet.BoxPainter
可以執行某些 CSS 格式化任務的類別。 |
static class |
StyleSheet.ListPainter
要執行某些 CSS 列表格式化任務的類別。 |
從類別 javax.swing.text.StyleContext 繼承的巢狀類別/介面 |
---|
StyleContext.NamedStyle, StyleContext.SmallAttributeSet |
欄位摘要 |
---|
從類別 javax.swing.text.StyleContext 繼承的欄位 |
---|
DEFAULT_STYLE |
建構子摘要 | |
---|---|
StyleSheet()
建構 StyleSheet |
方法摘要 | |
---|---|
AttributeSet |
addAttribute(AttributeSet old,
Object key,
Object value)
向給定集合添加屬性,並返回新的表示方式的集合。 |
AttributeSet |
addAttributes(AttributeSet old,
AttributeSet attr)
向元素添加屬性集。 |
void |
addCSSAttribute(MutableAttributeSet attr,
CSS.Attribute key,
String value)
將 CSS 屬性添加到給定的集合。 |
boolean |
addCSSAttributeFromHTML(MutableAttributeSet attr,
CSS.Attribute key,
String value)
將 CSS 屬性添加到給定的集合。 |
void |
addRule(String rule)
向 sheet 添加規則集合。 |
void |
addStyleSheet(StyleSheet ss)
將 StyleSheet ss 中的規則添加到接收者的規則中。 |
protected MutableAttributeSet |
createLargeAttributeSet(AttributeSet a)
創建一個以空間來換取時間的大屬性集合。 |
protected StyleContext.SmallAttributeSet |
createSmallAttributeSet(AttributeSet a)
創建可以共享的屬性壓縮集。 |
Color |
getBackground(AttributeSet a)
獲取一個屬性集並將其轉換為背景色規範。 |
URL |
getBase()
返回 base。 |
StyleSheet.BoxPainter |
getBoxPainter(AttributeSet a)
獲取給定 CSS 屬性集合使用的框 formatter。 |
AttributeSet |
getDeclaration(String decl)
將 CSS 宣告轉換為表示 CSS 宣告的 AttributeSet。 |
Font |
getFont(AttributeSet a)
獲取給定屬性集使用的字體。 |
Color |
getForeground(AttributeSet a)
獲取一個屬性集並將其轉換為前景色規範。 |
static int |
getIndexOfSize(float pt)
|
StyleSheet.ListPainter |
getListPainter(AttributeSet a)
獲取給定 CSS 屬性集合使用的列表 formatter。 |
float |
getPointSize(int index)
在給定大小索引的情況下返回點大小。 |
float |
getPointSize(String size)
如果給定字元串(如 "+2"、"-2" 或 "2"),則返回點大小值。 |
Style |
getRule(HTML.Tag t,
Element e)
獲取用來呈現給定型別的 HTML 標記的樣式。 |
Style |
getRule(String selector)
獲取最能比對以字元串形式表示的選擇器的規則。 |
StyleSheet[] |
getStyleSheets()
返回一個連接 StyleSheet 的陣列。 |
AttributeSet |
getViewAttributes(View v)
獲取用來顯示視圖的屬性集。 |
void |
importStyleSheet(URL url)
從 url 導入樣式表。 |
void |
loadRules(Reader in,
URL ref)
載入 CSS1 語法中指定的規則集合。 |
AttributeSet |
removeAttribute(AttributeSet old,
Object key)
從集合中移除屬性。 |
AttributeSet |
removeAttributes(AttributeSet old,
AttributeSet attrs)
移除屬性集。 |
AttributeSet |
removeAttributes(AttributeSet old,
Enumeration<?> names)
移除元素的屬性集。 |
void |
removeStyle(String nm)
移除以前添加到該文檔中的指定樣式。 |
void |
removeStyleSheet(StyleSheet ss)
從接收者的規則中移除 StyleSheet ss 。 |
void |
setBase(URL base)
設置 base。 |
void |
setBaseFontSize(int sz)
設置基本字體大小,其有效值範圍為 1 到 7。 |
void |
setBaseFontSize(String size)
根據傳入的 String 設置基本字體大小。 |
Color |
stringToColor(String string)
將顏色字元串(如 "RED" 或 "#NNNNNN")轉換為 Color。 |
AttributeSet |
translateHTMLToCSS(AttributeSet htmlAttrSet)
將 HTML 屬性集合轉換為對等的 CSS 屬性集合。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
建構子詳細資訊 |
---|
public StyleSheet()
方法詳細資訊 |
---|
public Style getRule(HTML.Tag t, Element e)
t
- 將轉換為可視屬性的型別e
- 表示標記的元素;該元素可用於確定巢狀的情況,如果巢狀在其他元素的內部,則屬性將不同
public Style getRule(String selector)
selector
是由空格隔開的元素名稱 String。例如,selector
可以是 'html body tr td'返回的 Style 屬性將隨著添加和移除規則進行更改。也就是說,如果要請求一個具有選擇器 "table p" 的規則,並添加了具有選擇器 "p" 的新規則,則返回的 Style 將包括來自規則 "p" 的新屬性。
public void addRule(String rule)
public AttributeSet getDeclaration(String decl)
public void loadRules(Reader in, URL ref) throws IOException
in
- 要從其讀取 CSS 語法的串流ref
- 參考 URL。此值表示串流的位置,可以為 null。所有在串流中指定的相關 URL 都將以此參數為依據。
IOException
public AttributeSet getViewAttributes(View v)
public void removeStyle(String nm)
StyleContext
中的 removeStyle
nm
- 要移除的樣式的名稱public void addStyleSheet(StyleSheet ss)
ss
中的規則添加到接收者的規則中。ss's
規則將覆寫以前添加的所有樣式表的規則。添加的 StyleSheet 永遠不會覆寫接收樣式表的規則。
public void removeStyleSheet(StyleSheet ss)
ss
。
public StyleSheet[] getStyleSheets()
public void importStyleSheet(URL url)
url
導入樣式表。得到的規則將直接添加到接收者中。如果不想讓這些規則成為接收者的一部分,則要創建一個新的 StyleSheet,並使用 addStyleSheet 與其連接。
public void setBase(URL base)
base
相關。
public URL getBase()
public void addCSSAttribute(MutableAttributeSet attr, CSS.Attribute key, String value)
public boolean addCSSAttributeFromHTML(MutableAttributeSet attr, CSS.Attribute key, String value)
public AttributeSet translateHTMLToCSS(AttributeSet htmlAttrSet)
htmlAttrSet
- 套件含 HTML 屬性的 AttributeSet。public AttributeSet addAttribute(AttributeSet old, Object key, Object value)
AbstractDocument.AttributeContext
中的 addAttribute
StyleContext
中的 addAttribute
old
- 原有屬性集key
- 非 null 屬性鍵value
- 屬性值
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
public AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
AbstractDocument.AttributeContext
中的 addAttributes
StyleContext
中的 addAttributes
old
- 原有屬性集attr
- 要添加的屬性
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
public AttributeSet removeAttribute(AttributeSet old, Object key)
AbstractDocument.AttributeContext
中的 removeAttribute
StyleContext
中的 removeAttribute
old
- 原有的屬性集key
- 非 null 屬性名稱
MutableAttributeSet.removeAttribute(java.lang.Object)
public AttributeSet removeAttributes(AttributeSet old, Enumeration<?> names)
AbstractDocument.AttributeContext
中的 removeAttributes
StyleContext
中的 removeAttributes
old
- 原有屬性集names
- 屬性名
MutableAttributeSet.removeAttributes(java.util.Enumeration>)
public AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
AbstractDocument.AttributeContext
中的 removeAttributes
StyleContext
中的 removeAttributes
old
- 原有屬性集attrs
- 屬性
MutableAttributeSet.removeAttributes(java.util.Enumeration>)
protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
StyleContext
中的 createSmallAttributeSet
a
- 以壓縮形式表示的屬性集。protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
StyleContext
中的 createLargeAttributeSet
a
- 以更大形式表示的屬性集。public Font getFont(AttributeSet a)
StyleContext
中的 getFont
a
- 屬性集
public Color getForeground(AttributeSet a)
StyleContext
中的 getForeground
a
- 屬性集
public Color getBackground(AttributeSet a)
StyleContext
中的 getBackground
a
- 屬性集
public StyleSheet.BoxPainter getBoxPainter(AttributeSet a)
public StyleSheet.ListPainter getListPainter(AttributeSet a)
public void setBaseFontSize(int sz)
public void setBaseFontSize(String size)
public static int getIndexOfSize(float pt)
public float getPointSize(int index)
public float getPointSize(String size)
public Color stringToColor(String string)
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。