|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--javax.swing.text.StyleContext | +--javax.swing.text.html.StyleSheet
描画される HTML ビューの視覚的な特性の定義をサポートします。StyleSheet は、HTML モデルを視覚的な特性に変換するために使用されます。これを使用して、表示の Look & Feel をカスタマイズしたり、同じモデルによる複数のビューをそれぞれ違った形で描画したりできます。これは CSS 規則リポジトリと考えることができます。CSS 属性のキーは CSS.Attribute 型のオブジェクトです。値の型は StyleSheet の実装に応じて異なります。ただし、CSS 値を文字列表現で返すには toString
メソッドが必要です。
HTML の View の実装で属性を取得するための主要なエントリポイントは getViewAttributes メソッドです。これは、属性とビューの関連付けに必要なポリシーを確立するために実装する必要があります。各 HTMLEditorKit (また関連する各 JEditorPane) は、専用の StyleSheet を持つことができますが、デフォルトではすべての HTMLEditorKit のインスタンスが 1 つのシートを共有します。HTMLDocument のインスタンスは、特定のドキュメント用の CSS 指定が記述された StyleSheet を持つこともできます。
View が格納する状態を減らし、タスクを軽くするために、StyleSheet は一部の描画タスクを処理するペインタのファクトリとして動作できます。これによって、実装は何をキャッシュするか、1 つのセレクタが複数のビューに共通するレベルで何を共有するかを決定することが可能になります。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 スタイルがオーバーライドする場合のセマンティクスは、十分に定義されていません。たとえば、HTML <body bgcolor=red>
は本体のバックグラウンドを赤にします。しかし HTML ファイルに body { background: blue }
という CSS 規則もある場合、本体のバックグラウンドを何色にするか、不明確になります。現在の実装は、要素で定義された視覚的な属性を最優先します。つまり、それらの属性は常にスタイルより先に確認されます。したがって上記の例では、本体要素がバックグラウンドカラーを赤に定義しているため、バックグラウンドは赤になります。
すでに述べたように、このメソッドは CSS をサポートします。CSS 仕様のすべてをサポートしているわけではありません。どのプロパティをサポートしているかについては、CSS クラスの javadoc を参照してください。現在のところサポートしていない概念に関連する主要な CSS 構文解析は、A:link { color: red }
などの疑似セレクタと、important
修飾子の 2 つです。
注: この実装は、現状では不完全です。将来、代替の実装によって置き換えられる可能性があります。このクラスの今後のバージョンでは、よりすぐれた 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)
規則セットをシートに登録します。 |
void |
addStyleSheet(StyleSheet ss)
StyleSheet ss の規則を、レシーバの規則に登録します。 |
protected MutableAttributeSet |
createLargeAttributeSet(AttributeSet a)
メモリ効率より処理時間を優先する場合のための、大きいサイズの属性セットを作成します。 |
protected StyleContext.SmallAttributeSet |
createSmallAttributeSet(AttributeSet a)
共有可能でコンパクトな属性セットを作成します。 |
Color |
getBackground(AttributeSet a)
属性セットを取得してバックグラウンドカラー指定に変換します。 |
URL |
getBase()
ベースを返します。 |
StyleSheet.BoxPainter |
getBoxPainter(AttributeSet a)
指定された CSS 属性のセットで使用するボックスフォーマッタを取り出します。 |
AttributeSet |
getDeclaration(String decl)
CSS 宣言を、CSS 宣言を表す属性セットに変換します。 |
Font |
getFont(AttributeSet a)
指定された属性セットで使用するフォントを取り出します。 |
Color |
getForeground(AttributeSet a)
属性セットを取得してフォアグラウンドカラー指定に変換します。 |
static int |
getIndexOfSize(float pt)
|
StyleSheet.ListPainter |
getListPainter(AttributeSet a)
指定された CSS 属性のセットで使用するリストフォーマッタを取り出します。 |
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 から StyleSheet ss を削除します。 |
void |
setBase(URL 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 です。たとえば 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
の規則は、すでに登録されているスタイルシートの規則をオーバーライドします。登録されている StyleSheet が新しく受け取るスタイルシートの規則をオーバーライドすることはありません。
public void removeStyleSheet(StyleSheet ss)
ss
から StyleSheet ss
を削除します。
public StyleSheet[] getStyleSheets()
public void importStyleSheet(URL url)
url
からスタイルシートをインポートします。結果の規則はレシーバに直接登録されます。規則をレシーバの一部にしたくない場合は、新しい StyleSheet を作成して addStyleSheet 使ってその StyleSheet をリンクさせます。
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)
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 Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.