public class StyleContext extends Objectimplements 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
A collection of attributes, typically used to represent character and paragraph styles.
|
class |
StyleContext
This class holds a small number of attributes in an array.
|
| Modifier and Type | Field and Description |
|---|---|
static String |
DEFAULT_STYLE
The 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
Adds an attribute to the given set, and returns the new representative set.
|
AttributeSet |
addAttributes(AttributeSet
Adds a set of attributes to the element.
|
void |
addChangeListener(ChangeListener
Adds a listener to track when styles are added or removed.
|
Style |
addStyle(String
Adds a new style into the style hierarchy.
|
protected MutableAttributeSet |
createLargeAttributeSet(AttributeSet
Create a large set of attributes that should trade off space for time.
|
protected StyleContext |
createSmallAttributeSet(AttributeSet
Create a compact set of attributes that might be shared.
|
Color |
getBackground(AttributeSet
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
Gets the font from an attribute set.
|
Font |
getFont(String
Gets a new font.
|
FontMetrics |
getFontMetrics(Font
Returns font metrics for a font.
|
Color |
getForeground(AttributeSet
Takes a set of attributes and turn it into a foreground color specification.
|
static Object |
getStaticAttribute(Object
Returns the object previously registered with
registerStaticAttributeKey.
|
static Object |
getStaticAttributeKey(Object
Returns the String that
key will be registered with
|
Style |
getStyle(String
Fetches a named style previously added to the document
|
Enumeration |
getStyleNames()
Fetches the names of the styles defined.
|
void |
readAttributes(ObjectInputStream
Context-specific handling of reading in attributes
|
static void |
readAttributeSet(ObjectInputStream
Reads a set of attributes from the given object input stream that have been previously written out with
writeAttributeSet.
|
void |
reclaim(AttributeSet
Returns a set no longer needed by the MutableAttributeSet implementation.
|
static void |
registerStaticAttributeKey(Object
Registers an object as a static object that is being used as a key in attribute sets.
|
AttributeSet |
removeAttribute(AttributeSet
Removes an attribute from the set.
|
AttributeSet |
removeAttributes(AttributeSet
Removes a set of attributes for the element.
|
AttributeSet |
removeAttributes(AttributeSet
Removes a set of attributes for the element.
|
void |
removeChangeListener(ChangeListener
Removes a listener that was tracking styles being added or removed.
|
void |
removeStyle(String
Removes a named style previously added to the document.
|
String |
toString()
Converts a StyleContext to a String.
|
void |
writeAttributes(ObjectOutputStream
Context-specific handling of writing out attributes
|
static void |
writeAttributeSet(ObjectOutputStream
Writes a set of attributes to the given object stream for the purpose of serialization.
|
public static final StringDEFAULT_STYLE
public static final StyleContextgetDefaultStyleContext()
public StyleaddStyle(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(Stringnm)
nm - the name of the style to remove
public StylegetStyle(String nm)
nm - the name of the style
public Enumeration<?> getStyleNames()
public void addChangeListener(ChangeListenerl)
l - the change listener
public void removeChangeListener(ChangeListenerl)
l - the change listener
public ChangeListener[] getChangeListeners()
ChangeListeners added to this StyleContext with addChangeListener().
ChangeListeners added or an empty array if no listeners have been added
public FontgetFont(AttributeSet attr)
attr - the attribute set
public ColorgetForeground(AttributeSet attr)
attr - the set of attributes
public ColorgetBackground(AttributeSet attr)
attr - the set of attributes
public FontgetFont(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 >= 1
public FontMetricsgetFontMetrics(Font f)
f - the font
public AttributeSetaddAttribute(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.AttributeContext
old - the old attribute set
name - the non-null attribute name
value - the attribute value
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
public AttributeSetaddAttributes(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.AttributeContext
old - the old attribute set
attr - the attributes to add
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
public AttributeSetremoveAttribute(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.AttributeContext
old - the old set of attributes
name - the non-null attribute name
MutableAttributeSet.removeAttribute(java.lang.Object)
public AttributeSetremoveAttributes(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.AttributeContext
old - the old attribute set
names - the attribute names
MutableAttributeSet.removeAttributes(java.util.Enumeration<?>)
public AttributeSetremoveAttributes(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.AttributeContext
old - the old attribute set
attrs - the attributes
MutableAttributeSet.removeAttributes(java.util.Enumeration<?>)
public AttributeSetgetEmptySet()
getEmptySet in interface
AbstractDocument.AttributeContext
public void reclaim(AttributeSeta)
This method is thread safe, although most Swing methods are not. Please see Concurrency in Swing for more information.
reclaim in interface
AbstractDocument.AttributeContext
a - the set to reclaim
protected int getCompressionThreshold()
protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
a - The set of attributes to be represented in the the compact form.
protected MutableAttributeSetcreateLargeAttributeSet(AttributeSet a)
a - The set of attributes to be represented in the the larger form.
public StringtoString()
public void writeAttributes(ObjectOutputStreamout, AttributeSet a) throws IOException
IOException
public void readAttributes(ObjectInputStreamin, MutableAttributeSet a) throws ClassNotFoundException , IOException
ClassNotFoundException
IOException
public static void writeAttributeSet(ObjectOutputStreamout, 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 stream
a - the attribute set
IOException - on any I/O error
public static void readAttributeSet(ObjectInputStreamin, 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(Objectkey)
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 key
public static ObjectgetStaticAttribute(Object key)
registerStaticAttributeKey.