TableCellRenderer (DetectedRootData detectedRootData) { if (isCellEditable(detectedRootData)) { return new ComboBoxTableRenderer<>(detectedRootData.getAllRoots()) { @Override protected String getTextFor(@NotNull DetectedProjectRoot value) { return value.getRootTypeName(); } }; } return new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { final Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (value instanceof DetectedProjectRoot) { setText(((DetectedProjectRoot)value).getRootTypeName()); } return component; } }; }