void (ColumnInfo<Item, Object>[] valueColumns, List<? extends Item> items) { ColumnInfo[] columns = new ColumnInfo[valueColumns.length + 1]; IconColumn iconColumn = new IconColumn(); int maxHeight = iconColumn.getRowHeight(); columns[0] = iconColumn; for (int i = 0; i < valueColumns.length; i++) { columns[i + 1] = new ColumnInfoWrapper(valueColumns[i]); if (valueColumns[i] instanceof RowHeightProvider) { maxHeight = Math.max(maxHeight, ((RowHeightProvider)valueColumns[i]).getRowHeight()); } } myTable.stopEditing(); myTable.setModelAndUpdateColumns(new ListTableModel<>(columns)); if (maxHeight > 0) { myTable.setRowHeight(maxHeight); } setItems(items); updateMessage(-1, null); }