Java プラットフォーム 1.2

javax.swing.text.html
クラス StyleSheet

java.lang.Object
  |
  +--javax.swing.text.StyleContext
        |
        +--javax.swing.text.html.StyleSheet

public class StyleSheet
extends StyleContext

描画される 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 属性のセットに変換します。
 
クラス javax.swing.text.StyleContext から継承したメソッド
addAttribute, addAttributes, addChangeListener, addStyle, createLargeAttributeSet, createSmallAttributeSet, getCompressionThreshold, getDefaultStyleContext, getEmptySet, getFont, getFontMetrics, getStaticAttribute, getStaticAttributeKey, getStyle, getStyleNames, readAttributes, readAttributeSet, reclaim, registerStaticAttributeKey, removeAttribute, removeAttributes, removeAttributes, removeChangeListener, removeStyle, toString, writeAttributes, writeAttributeSet
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

StyleSheet

public StyleSheet()
StyleSheet を構築します。
メソッドの詳細

getRule

public Style getRule(HTML.Tag t,
                     Element e)
指定されたタイプの HTML タグを描画するためのスタイルを取得します。要素は、タグを表すだけではなく、属性が異なる場合に入れ子処理の判定に使用することができます (要素内での入れ子処理の場合)。
パラメータ:
t - 可視属性に変換するタイプ
e - タグを表す要素。要素は、属性が異なる場合に入れ子処理の判定に使用することができる (他の要素内での入れ子処理の場合)
戻り値:
タグを描画するための CSS 属性のセット

getRule

public Style getRule(String selector)
指定されたセレクタに、文字列形式でもっとも一致する規則を取得します。

addRule

public void addRule(String rule)
規則セットをシートに登録します。規則は有効な CSS 形式であると想定されます。通常は、これは <style> タグの構文解析の結果として呼び出されます。

getDeclaration

public AttributeSet getDeclaration(String decl)
CSS 宣言を、CSS 宣言を表す属性セットに変換します。通常は、これは HTML スタイル属性が検出された結果として呼び出されます。

loadRules

public void loadRules(Reader in,
                      URL ref)
               throws IOException
CSS1 文法が指定する規則セットをロードします。既存の規則と競合する場合は、新しく指定される規則が優先します。
パラメータ:
in - CSS 文法を読み取るストリーム
ref - 参照 URL。この値はストリームの位置を表し、内容は null。ストリームで指定される関連 URL はすべてこのパラメータに基づく

getViewAttributes

public AttributeSet getViewAttributes(View v)
ビューで表示のために使用される属性セットを取得します。基本的には View.getAttributes で使用可能な属性のセットです。

getFont

public Font getFont(AttributeSet a)
属性セットで使用するフォントを取得します。
オーバーライド:
クラス StyleContext 内の getFont

getForeground

public Color getForeground(AttributeSet a)
属性セットを取得してフォアグラウンドカラー指定に変換します。明るさや色合い等を強調する場合に使用します。
パラメータ:
a - 属性セット
戻り値:
オーバーライド:
クラス StyleContext 内の getForeground

getBackground

public Color getBackground(AttributeSet a)
属性セットを取得してバックグラウンドカラー指定に変換します。明るさや色合い等を強調する場合に使用します。
パラメータ:
attr - 属性セット
戻り値:
オーバーライド:
クラス StyleContext 内の getBackground

getBoxPainter

public StyleSheet.BoxPainter getBoxPainter(AttributeSet a)
CSS 属性のセットで使用するボックスフォーマッタを取得します。

getListPainter

public StyleSheet.ListPainter getListPainter(AttributeSet a)
CSS 属性のセットで使用するリストフォーマッタを取得します。

stringToColor

public Color stringToColor(String str)
色文字列「RED」または「#NNNNNN」などを色に変換します。HTML3.2 準拠の色文字列または長さ 7 の文字列だけを変換し、それ以外は null を返すことに注意してください。

setBaseFontSize

public void setBaseFontSize(int sz)

setBaseFontSize

public void setBaseFontSize(String size)

getIndexOfSize

public static int getIndexOfSize(float pt)

getPointSize

public float getPointSize(int index)
サイズインデックスのポイントサイズを返します。

getPointSize

public float getPointSize(String size)
「+2」、「-2」、「2」の文字列のポイントサイズ値を返します。

translateHTMLToCSS

public AttributeSet translateHTMLToCSS(AttributeSet htmlAttrSet)
HTML 属性のセットを、対応する CSS 属性のセットに変換します。
パラメータ:
htmlAttrSet - HTML 属性を含む属性セット
htmlAttrSet - 対応する CSS 属性を含む属性セット。属性セットはマッピングされる CSS 属性がなければ空

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.