RFR: 6742362: JComponent.setFont() font comparison is not correct
Alexey Ivanov
aivanov at openjdk.java.net
Wed Feb 23 21:59:13 UTC 2022
On Tue, 22 Feb 2022 08:59:52 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
> Font comparison in JComponent.setFont() uses `font != oldFont` check which is not correct as per Object equality essence. The correct way of checking font equality is to use "equals" as is done in [GlyphLayout](https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/sun/font/GlyphLayout.java#L144) , [StandardGlyphVector](https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/sun/font/StandardGlyphVector.java#L657) etc
>
> Existing jtreg, jck test are green.
I agree it's safer to leave it unchanged. If a new font instance is set, it's likely different, it's safer to repaint the component. If you want to avoid expensive repaint, don't change the component font. In the majority of cases, font is set when the component is configured before it's made visible.
-------------
PR: https://git.openjdk.java.net/jdk/pull/7571
More information about the client-libs-dev
mailing list