|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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 のサポートが提供される予定です。
内部クラスの概要 | |
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 を構築します。 |
メソッドの概要 | |
void |
addRule(String rule)
規則セットをシートに登録します。 |
Color |
getBackground(AttributeSet a)
属性セットを取得してバックグラウンドカラー指定に変換します。 |
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)
指定されたセレクタに、文字列形式でもっとも一致する規則を取得します。 |
AttributeSet |
getViewAttributes(View v)
ビューで表示のために使用される属性セットを取得します。 |
void |
loadRules(Reader in,
URL ref)
CSS1 文法が指定する規則セットをロードします。 |
void |
setBaseFontSize(int sz)
|
void |
setBaseFontSize(String size)
|
Color |
stringToColor(String str)
色文字列「RED」または「#NNNNNN」などを色に変換します。 |
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)
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 はすべてこのパラメータに基づくpublic AttributeSet getViewAttributes(View v)
public Font getFont(AttributeSet a)
public Color getForeground(AttributeSet a)
a
- 属性セットpublic Color getBackground(AttributeSet a)
attr
- 属性セットpublic StyleSheet.BoxPainter getBoxPainter(AttributeSet a)
public StyleSheet.ListPainter getListPainter(AttributeSet a)
public Color stringToColor(String str)
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 AttributeSet translateHTMLToCSS(AttributeSet htmlAttrSet)
htmlAttrSet
- HTML 属性を含む属性セットhtmlAttrSet
- 対応する CSS 属性を含む属性セット。属性セットはマッピングされる CSS 属性がなければ空
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |