boa tarde…
Apliquei um exemplo de como colorir celulas do jtable a partir de um determinado valor usando TableCellRenderer, mas só pinta a coluna do valor verificado. Alguma idéia agora de como colorir as outras colunas da mesma linha?
boa tarde…
Apliquei um exemplo de como colorir celulas do jtable a partir de um determinado valor usando TableCellRenderer, mas só pinta a coluna do valor verificado. Alguma idéia agora de como colorir as outras colunas da mesma linha?
vc implementou o seu proprio renderer?
Já consegui, obrigada
posta o código para nós vermos…
Aí vai…
Minha JTable possui tem 3 colunas, e eu so vou pintar a linha se o valor da 2ª coluna for maior que um valor que eu estipulei.
Classe Render ColoriCelulas:
package exercicio.exec1.model;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
public class ColoriCelulas extends JLabel implements TableCellRenderer{
private static final long serialVersionUID = 1L;
public ColoriCelulas(){
setOpaque(true);
}
public Component getTableCellRendererComponent(JTable table,Object value, boolean isSelected, boolean hasFocus,int row, int column){
float tamanhoArquivo = Float.parseFloat((String) table.getModel().getValueAt(row, 1));
tamanhoArquivo = tamanhoArquivo / 1024;
tamanhoArquivo = tamanhoArquivo / 1024;
if(tamanhoArquivo > 1){
setBackground(new Color(255,153,153));
}else{
setBackground(table.getBackground());
}
setForeground(Color.black);
setText(value.toString());
return this;
}
public void validate() {}
public void revalidate() {}
protected void firePropertyChange(String propertyName,Object oldValue, Object newValue) {}
public void firePropertyChange(String propertyName,boolean oldValue, boolean newValue) {}
}
Método na classe pincipal:
public void pintaLinhas(){
TableCellRenderer tcr = new ColoriCelulas();
for (int i = 0; i < tableArquivos.getColumnCount(); i++){
tableArquivos.getColumnModel().getColumn(i).setCellRenderer(tcr);
}
}