|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjavax.swing.text.StyleContext
javax.swing.text.html.StyleSheet
public class 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 規則を含む) を表示します。
要素によって定義された視覚的な属性を CSS スタイルがオーバーライドする場合のセマンティクスは、十分に定義されていません。たとえば、HTML
すでに述べたように、このメソッドは CSS をサポートします。CSS 仕様のすべてをサポートしているわけではありません。どのプロパティーをサポートしているかについては、CSS クラスの javadoc を参照してください。現在のところサポートしていない概念に関連する主要な CSS 解析は、
注:この実装は、現状では不完全です。将来、代替の実装によって置き換えられる可能性があります。このクラスの今後のバージョンでは、よりすぐれた CSS サポートが提供される予定です。
は、空白で区切られた要素名の String です。たとえば html body tr td などです。
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);
}
}
<body bgcolor=red> は本体のバックグラウンドを赤にします。しかし HTML ファイルに body { background: blue } という CSS 規則もある場合、本体のバックグラウンドを何色にするか、不明確になります。現在の実装は、要素で定義された視覚的な属性を最優先します。 つまり、それらの属性は常にスタイルより先に確認されます。したがって上記の例では、本体要素がバックグラウンドカラーを赤に定義しているため、バックグラウンドは赤になります。
A:link { color:red } などの擬似セレクタと、important 修飾子の 2 つです。
入れ子のクラスの概要
static classStyleSheet.BoxPainter
CSS の書式設定処理の一部を実行するクラスです。
static classStyleSheet.ListPainter
CSS リストの書式設定処理の一部を実行するクラスです。
クラス javax.swing.text.StyleContext から継承された入れ子のクラス/インタフェース
StyleContext.NamedStyle, StyleContext.SmallAttributeSet
フィールドの概要
クラス javax.swing.text.StyleContext から継承されたフィールド
DEFAULT_STYLE
コンストラクタの概要
StyleSheet()
StyleSheet を構築します。
メソッドの概要
AttributeSetaddAttribute(AttributeSet old,
Object key,
Object value)
指定されたセットに属性を追加し、その新しいセットを返します。
AttributeSetaddAttributes(AttributeSet old,
AttributeSet attr)
属性セットを要素に追加します。
voidaddCSSAttribute(MutableAttributeSet attr,
CSS.Attribute key,
String value)
指定されたセットに CSS 属性を追加します。
booleanaddCSSAttributeFromHTML(MutableAttributeSet attr,
CSS.Attribute key,
String value)
指定されたセットに CSS 属性を追加します。
voidaddRule(String rule)
規則セットをシートに登録します。
voidaddStyleSheet(StyleSheet ss)
StyleSheet ss の規則を、レシーバの規則に登録します。
protected MutableAttributeSetcreateLargeAttributeSet(AttributeSet a)
メモリー効率より処理時間を優先する、大きいサイズの属性セットを作成します。
protected StyleContext.SmallAttributeSetcreateSmallAttributeSet(AttributeSet a)
共有可能でコンパクトな属性セットを作成します。
ColorgetBackground(AttributeSet a)
属性セットを取得してバックグラウンドカラー指定に変換します。
URLgetBase()
ベースを返します。
StyleSheet.BoxPaintergetBoxPainter(AttributeSet a)
指定された CSS 属性のセットで使用するボックスフォーマッタを取得します。
AttributeSetgetDeclaration(String decl)
CSS 宣言を、CSS 宣言を表す属性セットに変換します。
FontgetFont(AttributeSet a)
指定された属性セットで使用するフォントを取得します。
ColorgetForeground(AttributeSet a)
属性セットを取得してフォアグラウンドカラー指定に変換します。
static intgetIndexOfSize(float pt)
StyleSheet.ListPaintergetListPainter(AttributeSet a)
指定された CSS 属性のセットで使用するリストフォーマッタを取得します。
floatgetPointSize(int index)
指定されたサイズインデックスのポイントサイズを返します。
floatgetPointSize(String size)
「+2」、「-2」、「2」などの指定された文字列のポイントサイズ値を返します。
StylegetRule(HTML.Tag t,
Element e)
指定されたタイプの HTML タグを描画するために使用するスタイルを取得します。
StylegetRule(String selector)
文字列形式で指定されたセレクタにもっとも一致する規則を取り出します。
StyleSheet[]getStyleSheets()
リンクされた StyleSheet の配列を返します。
AttributeSetgetViewAttributes(View v)
表示のためにビューで使用される属性セットを取得します。
voidimportStyleSheet(URL url)
url からスタイルシートをインポートします。
voidloadRules(Reader in,
URL ref)
CSS1 文法が指定する規則セットをロードします。
AttributeSetremoveAttribute(AttributeSet old,
Object key)
セットから属性を削除します。
AttributeSetremoveAttributes(AttributeSet old,
AttributeSet attrs)
属性セットを削除します。
AttributeSetremoveAttributes(AttributeSet old,
Enumeration<?> names)
要素の属性セットを削除します。
voidremoveStyle(String nm)
以前にドキュメントに追加された名前付き書式を削除します。
voidremoveStyleSheet(StyleSheet ss)
レシーバの StyleSheet ss から StyleSheet ss を削除します。
voidsetBase(URL base)
ベースを設定します。
voidsetBaseFontSize(int sz)
1 〜 7 の有効な値で、ベースフォントサイズを設定します。
voidsetBaseFontSize(String size)
渡された String からベースフォントサイズを設定します。
ColorstringToColor(String string)
「RED」または「#NNNNNN」などの色文字列を Color に変換します。
AttributeSettranslateHTMLToCSS(AttributeSet htmlAttrSet)
HTML 属性のセットを、同等の CSS 属性のセットに変換します。
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
コンストラクタの詳細
StyleSheet
public StyleSheet()
メソッドの詳細
getRule
public Style getRule(HTML.Tag t,
Element e)
t - 視覚的な属性に変換する型e - タグを表す要素。 要素は、属性が異なる場合に入れ子処理の 判定に使用することができる (ほかの要素内での入れ子処理の場合)
getRule
public Style getRule(String selector)
返される 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 はすべて このパラメータに基づく
IOExceptionpublic AttributeSet getViewAttributes(View v)
public void removeStyle(String nm)
StyleContext 内の removeStylenm - 削除される書式の名前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)
htmlAttrSet - HTML 属性を含む AttributeSet
public AttributeSet addAttribute(AttributeSet old,
Object key,
Object value)
AbstractDocument.AttributeContext 内の addAttributeStyleContext 内の addAttributeold - 旧属性セットkey - null 以外の属性キーvalue - 属性値
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
public AttributeSet addAttributes(AttributeSet old,
AttributeSet attr)
AbstractDocument.AttributeContext 内の addAttributesStyleContext 内の addAttributesold - 旧属性セットattr - 追加する属性
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
public AttributeSet removeAttribute(AttributeSet old,
Object key)
AbstractDocument.AttributeContext 内の removeAttributeStyleContext 内の removeAttributeold - 旧属性セットkey - null 以外の属性名
MutableAttributeSet.removeAttribute(java.lang.Object)
public AttributeSet removeAttributes(AttributeSet old,
Enumeration<?> names)
AbstractDocument.AttributeContext 内の removeAttributesStyleContext 内の removeAttributesold - 旧属性セットnames - 属性名
MutableAttributeSet.removeAttributes(java.util.Enumeration>)
public AttributeSet removeAttributes(AttributeSet old,
AttributeSet attrs)
AbstractDocument.AttributeContext 内の removeAttributesStyleContext 内の removeAttributesold - 旧属性セットattrs - 属性
MutableAttributeSet.removeAttributes(java.util.Enumeration>)protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
StyleContext 内の createSmallAttributeSeta - コンパクトな形式で表現される 属性セットprotected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
StyleContext 内の createLargeAttributeSeta - サイズの大きい形式で表現される 属性セットpublic Font getFont(AttributeSet a)
StyleContext 内の getFonta - 属性セット
public Color getForeground(AttributeSet a)
StyleContext 内の getForegrounda - 属性セット
public Color getBackground(AttributeSet a)
StyleContext 内の getBackgrounda - 属性セット
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 Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。