Colorir row

Como faço para colorir o bg de uma ou mais rows?

Tenho uma tabela e um sistema de busca que vasculha a tabela e retorna as rows correspondentes, mas gostaria de fazer com que elas tivessem um highlight (não achei métodos de highlight também).

KaL,

Forneça mais detalhes sobre suas dúvidas postadas aqui no fórum, senão não tem como as pessoas responderem.
q tipo de row??? Jtable??? datatable??

JTable

Boa tarde a todos.

Você pode colorir JTables através de uma classe extendida de JLabels ou até JButtons e que implemente a interface TableCellRenderer. Isto significa dizer que as celúlas da sua JTable será de JLabels ou JButtons, de acordo como ela for extendida.

Um exemplo clássico disto é colorir o JTable no estilo Zebra, contudo voce pode fornecer meios dentro de TableCellRenderer para colorir uma linha específica de acordo com a valor retornado de JTable.

Eis o exemplo no formato zebra:

import java.awt.Color;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;

public class CellTableZebra extends JLabel implements TableCellRenderer {

    public CellTableZebra(){
        setOpaque(true);
    }

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        if ((row % 2)==0){
            setBackground(Color.YELLOW);
            setForeground(Color.RED);
        } else {
            setBackground(Color.WHITE);
            setForeground(Color.BLACK);
        }
        if (value==null){
            setText("");
        } else {
            setText(value.toString());
        }
        return this;
    }

}

O valor de cada célula retornado por JTable é o “Object value” que figura como parâmetro do método getTableCellRendererComponent.

Por fim voce vai configurar o JTable desta forma:

   JTable datalist = new JTable(); 
   datalist.setShowGrid(false);
   datalist.setDefaultRenderer(Object.class, new CellTableZebra());

Agora entendi e consegui fazer aqui.

Obrigado pela ajuda!