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/>
