javax.swing
Interface UIDefaults.LazyValue

All Known Implementing Classes:
UIDefaults.LazyInputMap sample code for javax.swing.UIDefaults.LazyInputMap definition code for javax.swing.UIDefaults.LazyInputMap , UIDefaults.ProxyLazyValue sample code for javax.swing.UIDefaults.ProxyLazyValue definition code for javax.swing.UIDefaults.ProxyLazyValue
Enclosing class:
UIDefaults sample code for javax.swing.UIDefaults definition code for javax.swing.UIDefaults

public static interface UIDefaults.LazyValue

This class enables one to store an entry in the defaults table that isn't constructed until the first time it's looked up with one of the getXXX(key) methods. Lazy values are useful for defaults that are expensive to construct or are seldom retrieved. The first time a LazyValue is retrieved its "real value" is computed by calling LazyValue.createValue() and the real value is used to replace the LazyValue in the UIDefaults table. Subsequent lookups for the same key return the real value. Here's an example of a LazyValue that constructs a Border:

  Object borderLazyValue = new UIDefaults.LazyValue() {
      public Object createValue(UIDefaults table) {
          return new BorderFactory.createLoweredBevelBorder();
      }
  };

  uiDefaultsTable.put("MyBorder", borderLazyValue);
 

See Also:
UIDefaults.get(java.lang.Object) sample code for javax.swing.UIDefaults.get(java.lang.Object) definition code for javax.swing.UIDefaults.get(java.lang.Object)

Method Summary
 Object sample code for java.lang.Object definition code for java.lang.Object createValue sample code for javax.swing.UIDefaults.LazyValue.createValue(javax.swing.UIDefaults) definition code for javax.swing.UIDefaults.LazyValue.createValue(javax.swing.UIDefaults) (UIDefaults sample code for javax.swing.UIDefaults definition code for javax.swing.UIDefaults  table)
          Creates the actual value retrieved from the UIDefaults table.
 

Method Detail

createValue sample code for javax.swing.UIDefaults.LazyValue.createValue(javax.swing.UIDefaults) definition code for javax.swing.UIDefaults.LazyValue.createValue(javax.swing.UIDefaults)

Object sample code for java.lang.Object definition code for java.lang.Object  createValue(UIDefaults sample code for javax.swing.UIDefaults definition code for javax.swing.UIDefaults  table)
Creates the actual value retrieved from the UIDefaults table. When an object that implements this interface is retrieved from the table, this method is used to create the real value, which is then stored in the table and returned to the calling method.

Parameters:
table - a UIDefaults table
Returns:
the created Object