On Fri, 13 Jan 2023 04:25:59 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> 
wrote:

> It is observed that if SwingSet2 is run in Nimbus L&F and
> we drag the icon tool bar (which is floatable) out of the GUI Window
> and  Once the tool bar is detached, click on "Look & Feel" menu option to 
> change to any L&F (say Java L&F)
> it causes NPE due to font being null when getFontMetrics() is called
> 
> In other L&F, it uses the tabPane's [font 
> ](https://github.com/openjdk/jdk/blob/master/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java#L2177)
>  whereas in Nimbus font is obtained from getStyle().getFont() which returns 
> null when toolbar is detached from the main window.
> The proposed fix is to get tabPane's font if the font passed is null alike 
> other L&Fs. 
> 
> No regression test is made as it can be verified with SwingSet2..

It is unclear does the "getStyle().getFont()" always returns null for that 
component but we call it only for "floatable" toolbar. Or 
"getStyle().getFont()" starts to return null for the "floatable" toolbar. If it 
starts to return null then why does this happen? Are we sure that the 
"getStyle().getFont()" and "tabPane.getFont()" always returns the same font?

-------------

PR: https://git.openjdk.org/jdk/pull/11984

Reply via email to