Issues similar to JDK-8359433

Aron Rahman aron.rahman at parcit.de
Thu Feb 19 09:55:39 UTC 2026


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

aron.rahman at parcIT.de<mailto:aron.rahman at parcIT.de>
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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/client-libs-dev/attachments/20260219/d9edc62b/attachment-0001.htm>


More information about the client-libs-dev mailing list