SwingUtilities.updateComponentTreeUI(this); will reset your own UI, if you call setUI() in constructor.
Example:
PeterCustomeTabbedPane —– extend ——> MaryCustomTabbedPane —- extend -> JTabbedPane (swing component)
Suppose PeterCustomeTabbedPane and MaryCustomTabbedPane have their own TabbedPaneUI, once you called SwingUtilities.updateComponentTreeUI(this); , PeterCustomeTabbedPane’s UI class will be reset to MaryCustomTabbedPane’s UI class.
Workaround:
!!! dont call setUI in PeterCustomeTabbedPane, override the setUI() method and set whatever you want to UI.