[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cp-patches] FYI: MetalLookAndFeel.setCurrentTheme
From: |
David Gilbert |
Subject: |
[cp-patches] FYI: MetalLookAndFeel.setCurrentTheme |
Date: |
Fri, 23 Sep 2005 09:34:56 +0000 |
User-agent: |
Mozilla Thunderbird 1.0.6 (X11/20050728) |
The 1.5.0 spec states that this method should throw a NullPointerException if the
supplied theme is null:
2005-09-23 David Gilbert <address@hidden>
* javax/swing/plaf/metal/MetalLookAndFeel.java
(setCurrentTheme): throw exception if argument is null, improved API
docs.
I also did some investigation of the procedure for changing the theme - this has
been implemented in such a way that it requires setting a new theme then creating
and installing a new instance of the MetalLookAndFeel. It could have been done
better, but that is the way it is and we match the reference implementation. I've
added some comments to the API docs to describe the procedure, since the steps
required are not immediately obvious.
Regards,
Dave
Index: javax/swing/plaf/metal/MetalLookAndFeel.java
===================================================================
RCS file:
/cvsroot/classpath/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java,v
retrieving revision 1.59
diff -u -r1.59 MetalLookAndFeel.java
--- javax/swing/plaf/metal/MetalLookAndFeel.java 22 Sep 2005 17:31:30
-0000 1.59
+++ javax/swing/plaf/metal/MetalLookAndFeel.java 23 Sep 2005 08:22:00
-0000
@@ -42,7 +42,9 @@
import java.awt.Font;
import java.awt.Insets;
+import javax.swing.LookAndFeel;
import javax.swing.UIDefaults;
+import javax.swing.UIManager;
import javax.swing.plaf.BorderUIResource;
import javax.swing.plaf.ColorUIResource;
import javax.swing.plaf.FontUIResource;
@@ -602,12 +604,21 @@
}
/**
- * Sets the current theme for the look and feel.
+ * Sets the current theme for the look and feel. Note that the theme must
be
+ * set <em>before</em> the look and feel is installed. To change the theme
+ * for an already running application that is using the
+ * address@hidden MetalLookAndFeel}, first set the theme with this method,
then
+ * create a new instance of address@hidden MetalLookAndFeel} and install it
in the
+ * usual way (see address@hidden UIManager#setLookAndFeel(LookAndFeel)}).
*
- * @param theme the theme.
+ * @param theme the theme (<code>null</code> not permitted).
+ *
+ * @throws NullPointerException if <code>theme</code> is <code>null</code>.
*/
public static void setCurrentTheme(MetalTheme theme)
{
+ if (theme == null)
+ throw new NullPointerException("Null 'theme' not permitted.");
MetalLookAndFeel.theme = theme;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [cp-patches] FYI: MetalLookAndFeel.setCurrentTheme,
David Gilbert <=