Pessoal, estou tentando colorir a célula de uma jtable, mas nessa célula eu tenho um combobox e não está dando pra colorir, quando tiro o combo, ele funciona normalmente. alguém poderia me dar um mão para que possa ser colorido com o combo?
Código do comboboxo
package Cadastro;
import com.sun.org.apache.xpath.internal.operations.Equals; import java.awt.Component; import javax.swing.DefaultCellEditor; import javax.swing.JComboBox; import javax.swing.JTable; import javax.swing.table.TableCellRenderer;class MyComboBoxRenderer extends JComboBox implements TableCellRenderer {
public MyComboBoxRenderer(String[] items) { super(items); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (isSelected) { setForeground(table.getSelectionForeground()); super.setBackground(table.getSelectionBackground()); } else { setForeground(table.getForeground()); setBackground(table.getBackground()); } setSelectedItem(value); return this; } } class MyComboBoxEditor extends DefaultCellEditor { public MyComboBoxEditor(String[] items) { super(new JComboBox(items)); } } class MyComboBoxRenderer1 extends JComboBox implements TableCellRenderer { public MyComboBoxRenderer1(String[] items) { super(items); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (isSelected) { setForeground(table.getSelectionForeground()); super.setBackground(table.getSelectionBackground()); } else { setForeground(table.getForeground()); setBackground(table.getBackground()); } setSelectedItem(value); return this; } } class MyComboBoxEditor1 extends DefaultCellEditor { public MyComboBoxEditor1(String[] items) { super(new JComboBox(items)); } }
Código que faz colorir:
package Cadastro; import java.awt.Color; import java.awt.Component; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; public class CustomTableCellRenderer extends DefaultTableCellRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (value instanceof String) { String valor = (String) value; if (valor.equalsIgnoreCase("CANCELADA")) { cell.setBackground(Color.red); } else { cell.setBackground(Color.white); } } return cell; } }