@Override
 protected void fireStateChanged() {
   // Guaranteed to return a non-null array
   Object[] listeners = listenerList.getListenerList();
   // Process the listeners last to first, notifying
   // those that are interested in this event
   for (int i = listeners.length - 2; i >= 0; i -= 2) {
     if (listeners[i] == ChangeListener.class) {
       // Lazily create the event:
       if (changeEvent == null) changeEvent = new ChangeEvent(this);
       final ChangeListener each = (ChangeListener)listeners[i + 1];
       if (each != null) {
         if (each.getClass().getName().contains("apple.laf.CUIAquaTabbedPane")) {

           //noinspection SSBasedInspection
           SwingUtilities.invokeLater(() -> {
             revalidate();
             repaint();
           });

           continue;
         }

         each.stateChanged(changeEvent);
       }
     }
   }
 }
@Override
 protected void fireStateChanged()