@Override
  public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
    JComponent editor = (JComponent)super.getTableCellEditorComponent(table, value, isSelected, row, column);
    JComponent renderer = (JComponent)table.getCellRenderer(row, column).getTableCellRendererComponent(table, value, isSelected, true, row, column);
    ValidationInfo cellInfo = renderer != null ? (ValidationInfo)renderer.getClientProperty(CELL_VALIDATION_PROPERTY) : null;
    if (cellInfo != null) {
      editor.putClientProperty(CELL_VALIDATION_PROPERTY, cellInfo.forComponent(editor));
      ComponentValidator.getInstance(editor).ifPresent(ComponentValidator::revalidate);
    }
    return editor;
  }
@Override
  public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)