RFR: 8042054: JTree.updateUI uses out-of-date item size information [v2]
Sergey Bylokhov
serb at openjdk.org
Fri Nov 14 06:27:07 UTC 2025
On Thu, 13 Nov 2025 05:22:40 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
>> `JTree.updateUI` calculate item sizes from the cell renderer, but it doesn't call `updateUI `on the cell renderer until afterwards. This leads to incorrect size calculation, which is observed when we switch from one L&F to another where it is seen that all tree items are slightly too cramped, with too little space between rows and text are abbreviated.
>> Fix is to ensure `JTree.updateUI` update the cell renderer before updating the UI.
>> CI testing is ok..
>>
>> Before fix
>> <img width="142" height="146" alt="image" src="https://github.com/user-attachments/assets/95d43e47-122a-4ca4-8a3f-f4bf5c1d3f43" />
>>
>> After fix
>> <img width="145" height="125" alt="image" src="https://github.com/user-attachments/assets/068b5988-119c-4b99-be27-1ef5d52a28a2" />
>
> Prasanta Sadhukhan has updated the pull request incrementally with one additional commit since the last revision:
>
> Test formatting
src/java.desktop/share/classes/javax/swing/JTree.java line 784:
> 782:
> 783: setUI((TreeUI)UIManager.getUI(this));
> 784: } finally {
Is it possible that the cell renderer and cell editor depend on the current UI set on the component, which is the opposite situation of the current bug, how it will work before after the patch?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28258#discussion_r2525933343
More information about the client-libs-dev
mailing list