public class StyleContext extends Object implements Serializable, AbstractDocument.AttributeContext
This class also provides efficient support for small sets of attributes and compresses them by sharing across uses and taking advantage of their immutable nature. Since many styles are replicated, the potential for sharing is significant, and copies can be extremely cheap. Larger sets reduce the possibility of sharing, and therefore revert automatically to a less space-efficient implementation.
 Warning:
 Serialized objects of this class will not be compatible with
 future Swing releases. The current serialization support is
 appropriate for short term storage or RMI between applications running
 the same version of Swing.  As of 1.4, support for long term storage
 of all JavaBeans™
 has been added to the java.beans package.
 Please see XMLEncoder.
| Modifier and Type | Class and Description | 
|---|---|
| class  | StyleContext.NamedStyleA collection of attributes, typically used to represent
 character and paragraph styles. | 
| class  | StyleContext.SmallAttributeSetThis class holds a small number of attributes in an array. | 
| Modifier and Type | Field and Description | 
|---|---|
| static String | DEFAULT_STYLEThe name given to the default logical style attached
 to paragraphs. | 
| Constructor and Description | 
|---|
| StyleContext()Creates a new StyleContext object. | 
| Modifier and Type | Method and Description | 
|---|---|
| AttributeSet | addAttribute(AttributeSet old,
            Object name,
            Object value)Adds an attribute to the given set, and returns
 the new representative set. | 
| AttributeSet | addAttributes(AttributeSet old,
             AttributeSet attr)Adds a set of attributes to the element. | 
| void | addChangeListener(ChangeListener l)Adds a listener to track when styles are added
 or removed. | 
| Style | addStyle(String nm,
        Style parent)Adds a new style into the style hierarchy. | 
| protected MutableAttributeSet | createLargeAttributeSet(AttributeSet a)Create a large set of attributes that should trade off
 space for time. | 
| protected StyleContext.SmallAttributeSet | createSmallAttributeSet(AttributeSet a)Create a compact set of attributes that might be shared. | 
| Color | getBackground(AttributeSet attr)Takes a set of attributes and turn it into a background color
 specification. | 
| ChangeListener[] | getChangeListeners()Returns an array of all the  ChangeListeners added
 to this StyleContext with addChangeListener(). | 
| protected int | getCompressionThreshold()Returns the maximum number of key/value pairs to try and
 compress into unique/immutable sets. | 
| static StyleContext | getDefaultStyleContext()Returns default AttributeContext shared by all documents that
 don't bother to define/supply their own context. | 
| AttributeSet | getEmptySet()Fetches an empty AttributeSet. | 
| Font | getFont(AttributeSet attr)Gets the font from an attribute set. | 
| Font | getFont(String family,
       int style,
       int size)Gets a new font. | 
| FontMetrics | getFontMetrics(Font f)Returns font metrics for a font. | 
| Color | getForeground(AttributeSet attr)Takes a set of attributes and turn it into a foreground color
 specification. | 
| static Object | getStaticAttribute(Object key)Returns the object previously registered with
  registerStaticAttributeKey. | 
| static Object | getStaticAttributeKey(Object key)Returns the String that  keywill be registered with | 
| Style | getStyle(String nm)Fetches a named style previously added to the document | 
| Enumeration<?> | getStyleNames()Fetches the names of the styles defined. | 
| void | readAttributes(ObjectInputStream in,
              MutableAttributeSet a)Context-specific handling of reading in attributes | 
| static void | readAttributeSet(ObjectInputStream in,
                MutableAttributeSet a)Reads a set of attributes from the given object input
 stream that have been previously written out with
  writeAttributeSet. | 
| void | reclaim(AttributeSet a)Returns a set no longer needed by the MutableAttributeSet implementation. | 
| static void | registerStaticAttributeKey(Object key)Registers an object as a static object that is being
 used as a key in attribute sets. | 
| AttributeSet | removeAttribute(AttributeSet old,
               Object name)Removes an attribute from the set. | 
| AttributeSet | removeAttributes(AttributeSet old,
                AttributeSet attrs)Removes a set of attributes for the element. | 
| AttributeSet | removeAttributes(AttributeSet old,
                Enumeration<?> names)Removes a set of attributes for the element. | 
| void | removeChangeListener(ChangeListener l)Removes a listener that was tracking styles being
 added or removed. | 
| void | removeStyle(String nm)Removes a named style previously added to the document. | 
| String | toString()Converts a StyleContext to a String. | 
| void | writeAttributes(ObjectOutputStream out,
               AttributeSet a)Context-specific handling of writing out attributes | 
| static void | writeAttributeSet(ObjectOutputStream out,
                 AttributeSet a)Writes a set of attributes to the given object stream
 for the purpose of serialization. | 
public static final String DEFAULT_STYLE
public static final StyleContext getDefaultStyleContext()
public Style addStyle(String nm, Style parent)
nm - the name of the style (must be unique within the
   collection of named styles in the document).  The name may
   be null if the style is unnamed, but the caller is responsible
   for managing the reference returned as an unnamed style can't
   be fetched by name.  An unnamed style may be useful for things
   like character attribute overrides such as found in a style
   run.parent - the parent style.  This may be null if unspecified
   attributes need not be resolved in some other style.public void removeStyle(String nm)
nm - the name of the style to removepublic Style getStyle(String nm)
nm - the name of the stylepublic Enumeration<?> getStyleNames()
public void addChangeListener(ChangeListener l)
l - the change listenerpublic void removeChangeListener(ChangeListener l)
l - the change listenerpublic ChangeListener[] getChangeListeners()
ChangeListeners added
 to this StyleContext with addChangeListener().ChangeListeners added or an empty
         array if no listeners have been addedpublic Font getFont(AttributeSet attr)
attr - the attribute setpublic Color getForeground(AttributeSet attr)
attr - the set of attributespublic Color getBackground(AttributeSet attr)
attr - the set of attributespublic Font getFont(String family, int style, int size)
family - the font family (such as "Monospaced")style - the style of the font (such as Font.PLAIN)size - the point size >= 1public FontMetrics getFontMetrics(Font f)
f - the fontpublic AttributeSet addAttribute(AttributeSet old, Object name, Object value)
This method is thread safe, although most Swing methods are not. Please see Concurrency in Swing for more information.
addAttribute in interface AbstractDocument.AttributeContextold - the old attribute setname - the non-null attribute namevalue - the attribute valueMutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)public AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
This method is thread safe, although most Swing methods are not. Please see Concurrency in Swing for more information.
addAttributes in interface AbstractDocument.AttributeContextold - the old attribute setattr - the attributes to addMutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)public AttributeSet removeAttribute(AttributeSet old, Object name)
This method is thread safe, although most Swing methods are not. Please see Concurrency in Swing for more information.
removeAttribute in interface AbstractDocument.AttributeContextold - the old set of attributesname - the non-null attribute nameMutableAttributeSet.removeAttribute(java.lang.Object)public AttributeSet removeAttributes(AttributeSet old, Enumeration<?> names)
This method is thread safe, although most Swing methods are not. Please see Concurrency in Swing for more information.
removeAttributes in interface AbstractDocument.AttributeContextold - the old attribute setnames - the attribute namesMutableAttributeSet.removeAttributes(java.util.Enumeration<?>)public AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
This method is thread safe, although most Swing methods are not. Please see Concurrency in Swing for more information.
removeAttributes in interface AbstractDocument.AttributeContextold - the old attribute setattrs - the attributesMutableAttributeSet.removeAttributes(java.util.Enumeration<?>)public AttributeSet getEmptySet()
getEmptySet in interface AbstractDocument.AttributeContextpublic void reclaim(AttributeSet a)
This method is thread safe, although most Swing methods are not. Please see Concurrency in Swing for more information.
reclaim in interface AbstractDocument.AttributeContexta - the set to reclaimprotected int getCompressionThreshold()
protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
a - The set of attributes to be represented in the
  the compact form.protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
a - The set of attributes to be represented in the
  the larger form.public String toString()
public void writeAttributes(ObjectOutputStream out, AttributeSet a) throws IOException
IOExceptionpublic void readAttributes(ObjectInputStream in, MutableAttributeSet a) throws ClassNotFoundException, IOException
ClassNotFoundExceptionIOExceptionpublic static void writeAttributeSet(ObjectOutputStream out, AttributeSet a) throws IOException
registerStaticAttributeKey method.
 Any attribute key not registered as a static key
 will be serialized directly.  All values are expected
 to be serializable.out - the output streama - the attribute setIOException - on any I/O errorpublic static void readAttributeSet(ObjectInputStream in, MutableAttributeSet a) throws ClassNotFoundException, IOException
writeAttributeSet.  This will try to restore
 keys that were static objects to the static objects in
 the current virtual machine considering only those keys
 that have been registered with the
 registerStaticAttributeKey method.
 The attributes retrieved from the stream will be placed
 into the given mutable set.in - the object stream to read the attribute data from.a - the attribute set to place the attribute
   definitions in.ClassNotFoundException - passed upward if encountered
  when reading the object stream.IOException - passed upward if encountered when
  reading the object stream.public static void registerStaticAttributeKey(Object key)
 For operation under a 1.1 virtual machine, this
 uses the value returned by toString
 concatenated to the classname.  The value returned
 by toString should not have the class reference
 in it (ie it should be reimplemented from the
 definition in Object) in order to be the same when
 recomputed later.
key - the non-null object keypublic static Object getStaticAttribute(Object key)
registerStaticAttributeKey. Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2023, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.