On Thu, 13 Nov 2025 05:22:40 GMT, Prasanta Sadhukhan <[email protected]> 
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

Reply via email to