code: public synchronized T setListItemRenderer(ListItemRenderer<V,T> listItemRenderer) {
          if(listItemRenderer == null) {
              listItemRenderer = createDefaultListItemRenderer();
              if(listItemRenderer == null) {
                  throw new IllegalStateException("createDefaultListItemRenderer returned null");
              }
          }
          this.listItemRenderer = listItemRenderer;
          return self();
      }
docs: This method overrides the {@code ListItemRenderer} that is used to draw each element in the list box. Note that
  this is not the renderer used for the entire list box but for each item, called one by one.
  @param listItemRenderer New renderer to use when drawing the items in the list box
  @return Itself