Index: javax/swing/plaf/metal/MetalInternalFrameUI.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/metal/MetalInternalFrameUI.java,v retrieving revision 1.1 diff -u -r1.1 MetalInternalFrameUI.java --- javax/swing/plaf/metal/MetalInternalFrameUI.java 14 Apr 2005 18:00:46 -0000 1.1 +++ javax/swing/plaf/metal/MetalInternalFrameUI.java 18 Apr 2005 23:06:28 -0000 @@ -38,6 +38,8 @@ package javax.swing.plaf.metal; +import java.util.HashMap; + import javax.swing.JComponent; import javax.swing.JInternalFrame; import javax.swing.plaf.ComponentUI; @@ -47,9 +49,8 @@ extends BasicInternalFrameUI { - // FIXME: maybe replace by a Map of instances when this becomes stateful - /** The shared UI instance for JInternalFrames */ - private static MetalInternalFrameUI instance = null; + /** The instances of MetalInternalFrameUI*/ + private static HashMap instances; /** * Constructs a new instance of MetalInternalFrameUI. @@ -68,8 +69,20 @@ */ public static ComponentUI createUI(JComponent component) { - if (instance == null) - instance = new MetalInternalFrameUI((JInternalFrame) component); + if (instances == null) + instances = new HashMap(); + + + Object o = instances.get(component); + MetalInternalFrameUI instance; + if (o == null) + { + instance = new MetalInternalFrameUI((JInternalFrame) component); + instances.put(component, instance); + } + else + instance = (MetalInternalFrameUI) o; + return instance; } } Index: javax/swing/plaf/metal/MetalSliderUI.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/metal/MetalSliderUI.java,v retrieving revision 1.1 diff -u -r1.1 MetalSliderUI.java --- javax/swing/plaf/metal/MetalSliderUI.java 14 Apr 2005 18:00:46 -0000 1.1 +++ javax/swing/plaf/metal/MetalSliderUI.java 18 Apr 2005 23:06:28 -0000 @@ -38,6 +38,8 @@ package javax.swing.plaf.metal; +import java.util.HashMap; + import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicSliderUI; @@ -46,9 +48,8 @@ extends BasicSliderUI { - // FIXME: maybe replace by a Map of instances when this becomes stateful - /** The shared UI instance for MetalSliderUIs */ - private static MetalSliderUI instance = null; + /** The UI instances for MetalSliderUIs */ + private static HashMap instances; /** * Constructs a new instance of MetalSliderUI. @@ -67,8 +68,20 @@ */ public static ComponentUI createUI(JComponent component) { - if (instance == null) - instance = new MetalSliderUI(); + if (instances == null) + instances = new HashMap(); + + + Object o = instances.get(component); + MetalSliderUI instance; + if (o == null) + { + instance = new MetalSliderUI(); + instances.put(component, instance); + } + else + instance = (MetalSliderUI) o; + return instance; } }