Component (JTable table, final Object value, boolean isSelected, boolean hasFocus, final int row, final int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); final int modelColumn = myTable.convertColumnIndexToModel(column); this.setIconTextGap(0); PsiField field = myFields[row]; switch (modelColumn) { case FIELD_COLUMN -> { Icon icon = myIconFields.get(field); if (icon != null) { setIcon(icon); setDisabledIcon(icon); } configureColors(isSelected, table, hasFocus, row, column); } case GETTER_COLUMN, SETTER_COLUMN -> { PsiMethod prototype = modelColumn == GETTER_COLUMN ? myGetterPrototypes.get(row) : mySetterPrototypes.get(row); RowIcon rowIcon = modelColumn == GETTER_COLUMN ? myGetterPrototypesIcons.get(row) : mySetterPrototypesIcons.get(row); if (prototype != null) { // MyTableRenderer.this.setForeground(Color.black); configureColors(isSelected, table, hasFocus, row, column); } else { setForeground(JBColor.RED); } if (rowIcon != null) { setIcon(rowIcon); setDisabledIcon(rowIcon); } } default -> { setIcon(null); setDisabledIcon(null); } } boolean enabled = myCheckedMarks[row]; if (enabled) { if (modelColumn == GETTER_COLUMN) { enabled = myCbEncapsulateGet.isSelected(); } else if (modelColumn == SETTER_COLUMN) { enabled = !myFinalMarks[row] && myCbEncapsulateSet.isSelected(); } } this.setEnabled(enabled); return this; }