public void setIconSupplier(@Nullable Supplier<? extends @Nullable Icon> icon) {
    if (myListeners.isEmpty()) {
      this.icon = icon;
      return;
    }

    Icon oldIcon = this.icon == null ? null : this.icon.get();
    this.icon = icon;
    Icon newIcon = icon == null ? null : icon.get();
    if (Objects.equals(oldIcon, newIcon)) return;
    fireObjectPropertyChange(PROP_ICON, oldIcon, newIcon);
  }
public void setIconSupplier(@Nullable Supplier<? extends @Nullable Icon> icon)