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, 2014, Oracle and/or its affiliates. All rights reserved.