モジュール java.desktop
パッケージ javax.swing.text

クラスStyleContext

java.lang.Object
javax.swing.text.StyleContext
すべての実装されたインタフェース:
Serializable, AbstractDocument.AttributeContext
直系の既知のサブクラス:
StyleSheet

public class StyleContext extends Object implements Serializable, AbstractDocument.AttributeContext
書式および関連するリソースのプールです。 このクラスは、さまざまな書式定義によって再利用されるフォントおよび色などのさまざまなリソースのキャッシュを保持するコンテナになることで、リソースのグループの寿命を決めます。 必要な場合、これは関連リソースを最大限に共有するために複数のドキュメントで共有できます。

また、このクラスは、属性の小さなセットに対する効率的なサポートを提供し、使用を共有することで属性を圧縮して、それらの変更不可能な性質を最大限に利用します。 多くの書式は複製されるので、共有の可能性が大きくなり、コピーが何度も使用されます。 大きなセットは共有の可能性を減少させるので、必然的に容量効率の劣った実装になります。

警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4では、すべてのJavaBeansの長期ストレージのサポートがjava.beansパッケージに追加されました。 XMLEncoderを参照してください。

  • フィールド詳細

    • DEFAULT_STYLE

      public static final String DEFAULT_STYLE
      段落に接続されるデフォルトの論理書式に付けられる名前です。
      関連項目:
      定数フィールド値
  • コンストラクタの詳細

    • StyleContext

      public StyleContext()
      新しいStyleContextオブジェクトを作成します。
  • メソッドの詳細

    • getDefaultStyleContext

      public static final StyleContext getDefaultStyleContext()
      独自のコンテキストを定義または供給しないすべてのドキュメントによって共有される、デフォルトのAttributeContextを返します。
      戻り値:
      コンテキスト
    • addStyle

      public Style addStyle(String nm, Style parent)
      書式階層に新しい書式を追加します。 書式の属性は下から上に向かって解釈処理されるので、子で指定された属性は親で指定された属性をオーバーライドします。
      パラメータ:
      nm - 書式の名前。ドキュメント内の名前付き書式のコレクションの中で一意である必要がある。 書式に名前が付いていない場合はこの名前をnullにしても構わないが、呼出し側は名前のない書式が名前で取得できない場合に返される参照を管理する責任がある。 名前のない書式は、スタイル・ランで見られるような文字属性のオーバーライドなどで便利な場合がある。
      parent - 親書式。 指定されていない属性がほかの書式で解釈処理される必要がない場合はnullも可。
      戻り値:
      作成された書式
    • removeStyle

      public void removeStyle(String nm)
      以前にドキュメントに追加された名前付き書式を削除します。
      パラメータ:
      nm - 削除される書式の名前
    • getStyle

      public Style getStyle(String nm)
      ドキュメントに以前に追加された名前付きの書式を取得します。
      パラメータ:
      nm - 書式の名前
      戻り値:
      書式
    • getStyleNames

      public Enumeration<?> getStyleNames()
      定義されている書式の名前を取得します。
      戻り値:
      名前の列挙のリスト
    • addChangeListener

      public void addChangeListener(ChangeListener l)
      書式が追加または削除されるときに変更を追跡するリスナーを追加します。
      パラメータ:
      l - 変更リスナー
    • removeChangeListener

      public void removeChangeListener(ChangeListener l)
      書式の追加または削除を追跡していたリスナーを削除します。
      パラメータ:
      l - 変更リスナー
    • getChangeListeners

      public ChangeListener[] getChangeListeners()
      addChangeListener()でこのStyleContextに追加される、すべてのChangeListenerの配列を返します。
      戻り値:
      追加されたすべてのChangeListener。リスナーが追加されていない場合は空の配列
      導入されたバージョン:
      1.4
    • getFont

      public Font getFont(AttributeSet attr)
      属性セットからフォントを取得します。 このメソッドは、指定されたAttributeSetに対して、キャッシュされたフォントの取得を試みるために実装されます。この取得が失敗した場合、フォント機能が解釈処理され、フォントは低レベルのフォント・キャッシュから取得されます。
      パラメータ:
      attr - 属性セット
      戻り値:
      フォント
    • getForeground

      public Color getForeground(AttributeSet attr)
      属性セットを取得してフォアグラウンド・カラー指定に変換します。 このメソッドは、明るさや色合い等を強調するために使われることがあります。デフォルトでは、単純にStyleConstants.Foreground属性で指定された値を返します。
      パラメータ:
      attr - 属性セット
      戻り値:
    • getBackground

      public Color getBackground(AttributeSet attr)
      属性セットを取得してバックグラウンド・カラー指定に変換します。 このメソッドは、明るさや色合い等を強調するために使われることがあります。デフォルトでは、単純にStyleConstants.Background属性で指定された値を返します。
      パラメータ:
      attr - 属性セット
      戻り値:
    • getFont

      public Font getFont(String family, int style, int size)
      新しいフォントを取得します。 このメソッドは、フォントがキャッシュされている場合にキャッシュからフォントを返します。 フォントがキャッシュされていない場合、フォントがキャッシュに追加されます。 これは、基本的に1.1のフォント機能の低レベルのキャッシュです。
      パラメータ:
      family - フォント・ファミリ(「Monospaced」など)
      style - フォントの書式(Font.PLAINなど)
      size - ポイント・サイズ>= 1
      戻り値:
      新規フォント
    • getFontMetrics

      public FontMetrics getFontMetrics(Font f)
      フォントのフォント・メトリックスを返します。
      パラメータ:
      f - フォント
      戻り値:
      メトリックス
    • addAttribute

      public AttributeSet addAttribute(AttributeSet old, Object name, Object value)
      指定されたセットに属性を追加し、その新しいセットを返します。

      このメソッドはスレッド・セーフですが、ほとんどのSwingメソッドは違います。 詳細は、Swingでの並行性に関連しているサイトを参照してください。

      定義:
      addAttribute、インタフェース: AbstractDocument.AttributeContext
      パラメータ:
      old - 旧属性セット
      name - null以外の属性名
      value - 属性値
      戻り値:
      更新属性セット
      関連項目:
      MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
    • addAttributes

      public AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
      属性セットを要素に追加します。

      このメソッドはスレッド・セーフですが、ほとんどのSwingメソッドは違います。 詳細は、Swingでの並行性に関連しているサイトを参照してください。

      定義:
      addAttributes、インタフェース: AbstractDocument.AttributeContext
      パラメータ:
      old - 旧属性セット
      attr - 追加する属性
      戻り値:
      更新属性セット
      関連項目:
      MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
    • removeAttribute

      public AttributeSet removeAttribute(AttributeSet old, Object name)
      セットから属性を削除します。

      このメソッドはスレッド・セーフですが、ほとんどのSwingメソッドは違います。 詳細は、Swingでの並行性に関連しているサイトを参照してください。

      定義:
      removeAttribute、インタフェース: AbstractDocument.AttributeContext
      パラメータ:
      old - 旧属性セット
      name - null以外の属性名
      戻り値:
      更新属性セット
      関連項目:
      MutableAttributeSet.removeAttribute(java.lang.Object)
    • removeAttributes

      public AttributeSet removeAttributes(AttributeSet old, Enumeration<?> names)
      要素の属性セットを削除します。

      このメソッドはスレッド・セーフですが、ほとんどのSwingメソッドは違います。 詳細は、Swingでの並行性に関連しているサイトを参照してください。

      定義:
      removeAttributes、インタフェース: AbstractDocument.AttributeContext
      パラメータ:
      old - 旧属性セット
      names - 属性名
      戻り値:
      更新属性セット
      関連項目:
      MutableAttributeSet.removeAttributes(java.util.Enumeration<?>)
    • removeAttributes

      public AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
      要素の属性セットを削除します。

      このメソッドはスレッド・セーフですが、ほとんどのSwingメソッドは違います。 詳細は、Swingでの並行性に関連しているサイトを参照してください。

      定義:
      removeAttributes、インタフェース: AbstractDocument.AttributeContext
      パラメータ:
      old - 旧属性セット
      attrs - 属性
      戻り値:
      更新属性セット
      関連項目:
      MutableAttributeSet.removeAttributes(java.util.Enumeration<?>)
    • getEmptySet

      public AttributeSet getEmptySet()
      空の属性セットを取得します。
      定義:
      getEmptySet、インタフェース: AbstractDocument.AttributeContext
      戻り値:
      セット
    • reclaim

      public void reclaim(AttributeSet a)
      MutableAttributeSetの実装によって必要とされなくなったセットを返します。 このメソッドは、弱参照のない1.1での処理に便利です。 通常、このメソッドはMutableAttributeSetの実装のfinalizeメソッドによって呼び出されます。

      このメソッドはスレッド・セーフですが、ほとんどのSwingメソッドは違います。 詳細は、Swingでの並行性に関連しているサイトを参照してください。

      定義:
      reclaim、インタフェース: AbstractDocument.AttributeContext
      パラメータ:
      a - 再生するセット
    • getCompressionThreshold

      protected int getCompressionThreshold()
      一意で変更が不可能なセットに圧縮を試みるキーと値のペアの最大数を返します。 この制限を超えるセットはハッシュ・テーブルを使い、MutableAttributeSetになります。
      戻り値:
      しきい値
    • createSmallAttributeSet

      protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
      共有可能でコンパクトな属性セットを作成します。 これは、サブクラスでSmallAttributeSetの動作を変更する場合に、サブクラスで利用するためのフックです。 このメソッドは、属性変換を提供するAttributeSetを返すために、実装し直すこともできます。
      パラメータ:
      a - コンパクトな形式で表現される属性セット。
      戻り値:
      共有できるコンパクトな属性のセット
    • createLargeAttributeSet

      protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
      メモリー効率より処理時間を優先する、大きいサイズの属性セットを作成します。 通常、このセットの共有は困難です。 これは、大きいサイズの属性格納形式(デフォルトではSimpleAttributeSet)の動作をサブクラスで変更する必要がある場合に、サブクラスで利用するためのフックです。 このメソッドは、属性変換を提供するMutableAttributeSetを返すために、実装し直すこともできます。
      パラメータ:
      a - サイズの大きい形式で表現される属性セット。
      戻り値:
      時間のためにスペースをトレードオフするべきである大きなセットの属性
    • toString

      public String toString()
      書式コンテキストを文字列に変換します。
      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      文字列
    • writeAttributes

      public void writeAttributes(ObjectOutputStream out, AttributeSet a) throws IOException
      属性を書き込むコンテキスト固有の処理です。
      パラメータ:
      out - 出力ストリーム
      a - 属性セット
      例外:
      IOException - 入出力エラーが発生した場合
    • readAttributes

      public void readAttributes(ObjectInputStream in, MutableAttributeSet a) throws ClassNotFoundException, IOException
      属性を読み込むコンテキスト固有の処理です。
      パラメータ:
      in - 属性データを読み込むオブジェクト・ストリーム。
      a - 属性定義を配置する属性セット。
      例外:
      ClassNotFoundException - オブジェクト・ストリームを読み込むときに検出された場合、上に渡される。
      IOException - オブジェクト・ストリームを読み込むときに検出された場合、上に渡される。
    • writeAttributeSet

      public static void writeAttributeSet(ObjectOutputStream out, AttributeSet a) throws IOException
      直列化のために、指定されたオブジェクト・ストリームに属性セットを書き込みます。 このメソッドは特別に注意して、registerStaticAttributeKeyメソッドで登録されているstatic属性キーを処理します。 staticキーとして登録されていない属性キーは直接直列化されます。 すべての値が直列化可能です。
      パラメータ:
      out - 出力ストリーム
      a - 属性セット
      例外:
      IOException - 入出力エラーが発生した場合
    • readAttributeSet

      public static void readAttributeSet(ObjectInputStream in, MutableAttributeSet a) throws ClassNotFoundException, IOException
      指定されたオブジェクト入力ストリームから、writeAttributeSetで以前に書き込まれている属性セットを読み込みます。 このメソッドは、registerStaticAttributeKeyメソッドで登録されているキーだけを考慮する現在の仮想マシンでstaticオブジェクトだったキーをstaticオブジェクトに復元しようとします。 ストリームから取り出された属性は、指定された変更が可能なセットに配置されます。
      パラメータ:
      in - 属性データを読み込むオブジェクト・ストリーム。
      a - 属性定義を配置する属性セット。
      例外:
      ClassNotFoundException - オブジェクト・ストリームを読み込むときに検出された場合、上に渡される。
      IOException - オブジェクト・ストリームを読み込むときに検出された場合、上に渡される。
    • registerStaticAttributeKey

      public static void registerStaticAttributeKey(Object key)
      オブジェクトを、属性セットでキーとして使われるstaticオブジェクトとして登録します。 その結果、そのキーは特別に直列化が処理されるようになります。

      1.1仮想マシン上での処理の場合、このメソッドはクラス名に連結されたtoStringによって返される値を使用します。 toStringによって返される値は、後で再計算されるときに同じになるようにするためには、その中にクラス参照を持たせることはできません。それは、Object内の定義から再実装されなければいけません。

      パラメータ:
      key - null以外のオブジェクト・キー
    • getStaticAttribute

      public static Object getStaticAttribute(Object key)
      直前にregisterStaticAttributeKeyに登録されたオブジェクトを返します。
      パラメータ:
      key - オブジェクト・キー
      戻り値:
      直前にregisterStaticAttributeKeyに登録されたオブジェクトを返します
    • getStaticAttributeKey

      public static Object getStaticAttributeKey(Object key)
      keyに登録されるStringを返します。
      パラメータ:
      key - オブジェクト・キー
      戻り値:
      keyが登録されるString
      関連項目:
      getStaticAttribute(java.lang.Object), registerStaticAttributeKey(java.lang.Object)