public class StyleSheet extends StyleContext
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 規則もある場合、本文のバックグラウンドを何色にするか、不明確になります。現在の実装は、要素で定義された視覚的な属性を最優先します。つまり、それらの属性は常にスタイルより先に確認されます。したがって上記の例では、body 要素がバックグラウンドカラーを赤に定義しているため、バックグラウンドは赤になります。
すでに述べたように、このメソッドは CSS をサポートします。CSS 仕様のすべてをサポートしているわけではありません。どのプロパティーをサポートしているかについては、CSS クラスの javadoc を参照してください。現在のところサポートしていない概念に関連する主要な CSS 解析は、A:link { color: red }
などの擬似セレクタと、important
修飾子の 2 つです。
注: この実装は、現状では不完全です。将来、代替の実装によって置き換えられる可能性があります。このクラスの今後のバージョンでは、より優れた CSS サポートが提供される予定です。
修飾子と型 | クラスと説明 |
---|---|
static class |
StyleSheet.BoxPainter
CSS の書式設定処理の一部を実行するクラスです。
|
static class |
StyleSheet.ListPainter
CSS リストの書式設定処理の一部を実行するクラスです。
|
StyleContext.NamedStyle, StyleContext.SmallAttributeSet
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 属性のセットに変換します。
|
addChangeListener, addStyle, getChangeListeners, getCompressionThreshold, getDefaultStyleContext, getEmptySet, getFont, getFontMetrics, getStaticAttribute, getStaticAttributeKey, getStyle, getStyleNames, readAttributes, readAttributeSet, reclaim, registerStaticAttributeKey, removeChangeListener, toString, writeAttributes, writeAttributeSet
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)
removeStyle
、クラス: StyleContext
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)
htmlAttrSet
- HTML 属性を含む AttributeSet。public AttributeSet addAttribute(AttributeSet old, Object key, Object value)
addAttribute
、インタフェース: AbstractDocument.AttributeContext
addAttribute
、クラス: StyleContext
old
- 旧属性セットkey
- null 以外の属性キーvalue
- 属性値MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
public AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
addAttributes
、インタフェース: AbstractDocument.AttributeContext
addAttributes
、クラス: StyleContext
old
- 旧属性セットattr
- 追加する属性MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
public AttributeSet removeAttribute(AttributeSet old, Object key)
removeAttribute
、インタフェース: AbstractDocument.AttributeContext
removeAttribute
、クラス: StyleContext
old
- 旧属性セットkey
- null 以外の属性名MutableAttributeSet.removeAttribute(java.lang.Object)
public AttributeSet removeAttributes(AttributeSet old, Enumeration<?> names)
removeAttributes
、インタフェース: AbstractDocument.AttributeContext
removeAttributes
、クラス: StyleContext
old
- 旧属性セットnames
- 属性名MutableAttributeSet.removeAttributes(java.util.Enumeration<?>)
public AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
removeAttributes
、インタフェース: AbstractDocument.AttributeContext
removeAttributes
、クラス: StyleContext
old
- 旧属性セットattrs
- 属性MutableAttributeSet.removeAttributes(java.util.Enumeration<?>)
protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
createSmallAttributeSet
、クラス: StyleContext
a
- コンパクトな形式で表現される属性セット。protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
createLargeAttributeSet
、クラス: StyleContext
a
- サイズの大きい形式で表現される属性セット。public Font getFont(AttributeSet a)
getFont
、クラス: StyleContext
a
- 属性セットpublic Color getForeground(AttributeSet a)
getForeground
、クラス: StyleContext
a
- 属性セットpublic Color getBackground(AttributeSet a)
getBackground
、クラス: StyleContext
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)
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.