Looks good to me.
Regards
Prasanta
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.