Olá Amigos,
como eu posso fazer cores alternadas em uma jtable?
obrigado a todos
Cores Alternadas
5 Respostas
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.
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;
}
};
Que erro dá? Ficam todas brancas? Amarelas?
Veja também:
http://www.crionics.com/products/opensource/faq/swing_ex/JTableExamples4.html
não chega a da erro…
so quando eu listo ela…fica sem nenhuma linha…como se estivesse vazia…some tudo…
É 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!