else  super.setText("");
  public Component getTableCellRendererComponent(JTable table, Object value,                                                 boolean isSelected,                                                 boolean hasFocus,                                                 int row, int column)  {    if (value != null)      {        if (value instanceof JTextField)          return new JTextField(((JTextField)value).getText());      super.setText(value.toString());      }        setOpaque(true);    if (table == null)      return this;    if (isSelected)      {        super.setBackground(table.getSelectionBackground());        super.setForeground(table.getSelectionForeground());      }    else      {        if (background != null)          super.setBackground(background);        else          super.setBackground(table.getBackground());        if (foreground != null)          super.setForeground(foreground);        else          super.setForeground(table.getForeground());      }    if (hasFocus)      {        setBorder(UIManager.getBorder("Table.focusCellHighlightBorder"));        if (table.isCellEditable(row, column))          {            super.setBackground(UIManager.getColor("Table.focusCellBackground"));            super.setForeground(UIManager.getColor("Table.focusCellForeground"));          }      }    else      setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));    setFont(table.getFont());    // If the current background is equal to the table's background, then we    // can avoid filling the background by setting the renderer opaque.    Color back = getBackground();    setOpaque(back != null && back.equals(table.getBackground()));        return this;  }