Dear openJDK devs,

I contacted Sergey Bylokhov via LinkedIn in December because we are unable to 
migrate to JDK25 due to commit 
https://github.com/openjdk/jdk25u/commit/477da161e62040d77079196ea27d24b27de75b64.
 In this commit, internal Swing classes were declared as final.
We have (unfortunately) built derivation hierarchies of several affected 
classes on which our entire Swing UI is based. If we were to abandon the 
derivations, it would mean undesirable changes in the behavior of our GUIs. 
Maintaining the behavior would be very expensive/impossible. We are working 
step by step to replace our Swing UI with a modern UI, but this is likely to 
take longer than JDK21 support lasts.
Sergey Bylokhov recommended that I should send an email about ticket 
https://bugs.openjdk.org/browse/JDK-8359433 and contact this mailing list. He 
asked for a detailed description of which classes are being extended and why. 
Due to an urgent feature, the responsible devs were busy and my response took 
two months. I'm sorry for that. Here is the description:

Original class
What we've changed via derivation:
WindowsButtonUI

  *   veto listener for mouse clicks
  *   look & feel
WindowsCheckBoxUI

  *   look & feel for read-only
  *   drawing CellHint-function
  *
WindowsComboBoxUI

  *   look & feel for read-only
  *   read-only function
  *   change keyboard behavior
  *   small other changes in look & feel
WindowsRadioButtonUI

  *   look & feel
WindowsTextAreaUI

  *   look & feel for read-only
WindowsLabelUI

  *   look & feel
WindowsTreeUI

  *   changing DefaultCellRenderer
  *   look & feel for read-only function
  *   drawing lines, adapting width in tables, background color
ToolBarBorder

  *   look & feel
WindowsSliderUI

  *   changing slider's behaviour
WindowsTabbedPaneUI

  *   look & feel

I hope, this helps. When we implemented this years ago, we obviously should 
have found a better solution than overwriting internal classes. On the other 
hand, it may not be very important to you that overwriting internal classes has 
now been prohibited for legacy Swing UI.
We would be very grateful to you if you could undo the commit or parts of it so 
that we can continue to use the overwrites with JDK25 or higher. If this is not 
possible, we are also interested in other solution ideas. Otherwise, we will 
unfortunately have to go to the trouble of replacing this historical code at 
some point.

Best regards,
Aron from Cologne, Germany, working for parcIT



Aron Rahman
Team Lead Software Development

[email protected]<mailto:[email protected]>
Tel.: +49 221 584 75 156

parcIT GmbH
Erftstraße 15
50672 Köln

Sitz der Gesellschaft: Köln
AG Köln HRB 67455
Geschäftsführer: Thomas Jagodzinsky, Patrick Yousefian
www.parcIT.de<http://www.parcit.de/>

Reply via email to