JComponent (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (value instanceof ListWithSelection tags) { if (tags.getSelection() == null) tags.selectFirst(); updateCombobox(tags, tags.getSelection()); } else if (value instanceof Enum selectedValue) { updateCombobox(EnumSet.allOf(selectedValue.getDeclaringClass()), selectedValue); } else { if (value != null) { LOG.error("value " + objectInfo(value) + ", at " + row + ":" + column + ", in " + table.getModel()); } myCombo.removeAllItems(); myCombo.setSelectedIndex(-1); } myCombo.setEnabled(table.isCellEditable(row, column)); return this; }