<Swing Dev> [11] Review Request: 8205144 JSpinner may change the font after became visible

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Thu Jun 21 06:01:57 UTC 2018

Looks good to me.

On 6/21/2018 4:37 AM, Sergey Bylokhov wrote:
> Hello.
> Please review the fix for jdk11.
> Bug: https://bugs.openjdk.java.net/browse/JDK-8205144
> Webrev: http://cr.openjdk.java.net/~serb/8205144/webrev.00
> Our implementation of JSpinner tries to maintain the font which is 
> used in the text field inside spinner. There are three cases when the 
> font of the text field should be changed to the font of spinner(if the 
> font of text field was not set by the user).
>  - By default when the spinner is created(fixed in JDK-6421058)
>  - When the user change the font of the spinner(fixed in JDK-5036022)
> And there is one more case which should be taken into account. It is 
> possible that LaF can change the font of text field to the font which 
> is used by default by all textfields in this LaF. It is possible to 
> reproduce this using:
> ==========
>     /**
>      * A simple minded look and feel change: ask each node in the tree
>      * to <code>updateUI()</code> -- that is, to initialize its UI 
> property
>      * with the current look and feel.
>      */
>     public static void updateComponentTreeUI(Component c)
> ==========
> This method will iterate over hierarchy of the components and call 
> updateUI() for each components, then its children, and so on. This is 
> a situation when the bug is reproduced. During updateUI() in JSpinner 
> the font of internal text field will be set to the font of the 
> spinner, but later when the updateUI() will be called for the text 
> field itself the font will be set to default font of of all text fields.
> The problem is not reproduced if the application do not change the LaF 
> on the fly, because in this case we call updateUI() for spinner after 
> updateUI() for internal text field.
> The fix will reject all fonts(UIResource) which were not set by the 
> user, except the font of the spinner.

More information about the swing-dev mailing list