Cores Alternadas

5 respostas
zzzhhh

Olá Amigos,
como eu posso fazer cores alternadas em uma jtable?
obrigado a todos

5 Respostas

raci0nal

Tente:

JTable tabela = new JTable(conteudo, colunas){ public Component prepareRenderer(TableCellRenderer renderer, int rowIndex, int vColIndex) { Component c = super.prepareRenderer(renderer, rowIndex, vColIndex); if (vrowIndex % 2 == 0 && !isCellSelected(rowIndex, vColIndex)) { c.setBackground(Color.yellow); } else { c.setBackground(getBackground()); } return c; } };

As linhas pares ficam amarelas e as impares da cor padrão.

zzzhhh

amigos,
onde que pode esta o erro

JTable tb_Pesquisa = new JTable(int rowIndex,int columnIndex){ public Component prepareRenderer(TableCellRenderer renderer, int rowIndex, int vColIndex) { Component c = super.prepareRenderer(renderer, rowIndex, vColIndex); if (vrowIndex % 2 == 0 && !isCellSelected(rowIndex, vColIndex)) { c.setBackground(Color.yellow); } else { c.setBackground(getBackground()); } return c; } };

ViniGodoy

Que erro dá? Ficam todas brancas? Amarelas?

Veja também:
http://www.crionics.com/products/opensource/faq/swing_ex/JTableExamples4.html

zzzhhh

não chega a da erro…
so quando eu listo ela…fica sem nenhuma linha…como se estivesse vazia…some tudo…

davidbuzatto

É quase a mesma coisa, mas tenta ai:

/**
 * Esta classe define um renderizador de células que cria o efeito de
 * listras.
 *
 * @author David Buzatto
 */
public class StripedColorCellRenderer extends DefaultTableCellRenderer {
    
    public StripedColorCellRenderer( Color corPar, Color corImpar ) {
        
        if ( corPar == null ) {
            
            this.corPar = Color.white;
            
        } else {
            
            this.corPar = corPar;
            
        }
        
        if ( corImpar == null ) {
            
            this.corImpar = Color.white;
            
        } else {
            
            this.corImpar = corImpar;
            
        }
        
        
    }
    
    public Component getTableCellRendererComponent
           (JTable table, Object value, boolean isSelected,
           boolean hasFocus, int row, int column) {
        
        super.getTableCellRendererComponent
           ( table, value, isSelected, hasFocus, row, column );

        if ( row % 2 == 0 ) {
            
            setBackground( corPar );
            
        } else {
         
            setBackground( corImpar ); 
            
        }

        return this;
        
    }
    
    private Color corPar;
    private Color corImpar;
    
}

Implementando uma tabela:

public class StripedJTable extends JTable {
    
    /** 
     * Cria uma nova instância de JTableStriped.
     */
    public StripedJTable() {
        
        // chama o construtor da superclasse
        super();
        
        // define o renderer das células
        setDefaultRenderer( Object.class, new StripedColorCellRenderer(
                new Color( 255, 255, 255 ), new Color( 205, 221, 237 ) ) );
        
    }

}

Dá uma melhorada nas classes :D

Abraço!

Criado 26 de junho de 2007
Ultima resposta 22 de out. de 2007
Respostas 5
Participantes 4