@Override
    protected PropertyChangeListener createPropertyChangeListener() {
      PropertyChangeListener listener = super.createPropertyChangeListener();
      return new PropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent evt) {
          listener.propertyChange(evt);
          if ("renderer".equals(evt.getPropertyName())) {
            if (!(list.getCellRenderer() instanceof MyDelegateRenderer)) {
              //noinspection unchecked
              list.setCellRenderer(new MyDelegateRenderer());
            }
          }
        }
      };
    }
@Override
    protected PropertyChangeListener createPropertyChangeListener()