class StringTableCellRenderer implements TableCellRenderer {

  @Override
  public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
                                                 boolean hasFocus, int row, int column) {
    JLabel label = (JLabel) delegate.getTableCellRendererComponent(table,
                                                                   value,
                                                                   isSelected,
                                                                   hasFocus,
                                                                   row,
                                                                   column);
    @SuppressWarnings("unchecked")
    E val = (E) value;
    label.setText(representer.apply(val));
    return label;
  }

  public  StringTableCellRenderer(Function<E, String> representer);

}