public void setIcon(@Nullable Icon icon) {
    if (myListeners.isEmpty()) {
      this.icon = icon == null ? null : () -> icon;
      return;
    }

    Icon oldIcon = this.icon == null ? null : this.icon.get();
    this.icon = () -> icon;
    fireObjectPropertyChange(PROP_ICON, oldIcon, icon);
  }
public void setIcon(@Nullable Icon icon)