Senhores, muito bom dia.
Tenho aqui em meu sistema um método que faz a linha da tabela piscar.
Para isso pego o conteúdo de uma coluna e comparo com outro
e uso um timer para fazer piscarem as linhas escolhidas.
Essas duas colunas que uso para comparar são dados numéricos.
O caso é que eu quero centralizar essas duas colunas.
Funciona assim:
Método que aplica o Renderer:
private void aplicaRenderer(int escolhe) {
TableCellRenderer tcr1 = new LinhaCor();
TableCellRenderer tcr2 = new LinhaPisca();
TableColumn column0 = tbEstoque.getColumnModel().getColumn(0);
TableColumn column1 = tbEstoque.getColumnModel().getColumn(1);
TableColumn column2 = tbEstoque.getColumnModel().getColumn(2);
TableColumn column3 = tbEstoque.getColumnModel().getColumn(3);
TableColumn column4 = tbEstoque.getColumnModel().getColumn(4);
if (escolhe == 1) {
column0.setCellRenderer(tcr1);
column1.setCellRenderer(tcr1);
column2.setCellRenderer(tcr1);
column3.setCellRenderer(tcr1);
column4.setCellRenderer(tcr1);
} else {
column0.setCellRenderer(tcr2);
column1.setCellRenderer(tcr2);
column2.setCellRenderer(tcr2);
column3.setCellRenderer(tcr2);
column4.setCellRenderer(tcr2);
}
}
Classes Renderer:
class LinhaCor extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int col) {
Component c = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, col);
Object valueAt1 = table.getModel().getValueAt(row, 3);
Object valueAt2 = table.getModel().getValueAt(row, 4);
int a1 = (int) valueAt1, a2 = (int) valueAt2;
if (isSelected) {
c.setForeground(Color.blue);
c.setBackground(Color.pink);
} else {
c.setForeground(Color.black);
if (a1 >= a2) {
c.setBackground(Color.red);
} else {
if (row %2 == 1) {
c.setBackground(Color.WHITE);
} else {
c.setBackground(Color.LIGHT_GRAY);
}
}
}
return c;
}
}
package Fontes;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
class LinhaPisca extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int col) {
Component c = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, col);
Object valueAt1 = table.getModel().getValueAt(row, 3);
Object valueAt2 = table.getModel().getValueAt(row, 4);
int a1 = (int) valueAt1, a2 = (int) valueAt2;
if (isSelected) {
c.setForeground(Color.blue);
c.setBackground(Color.pink);
} else {
if (a1 >= a2) {
c.setBackground(Color.black);
c.setForeground(Color.white);
} else {
c.setForeground(Color.black);
if (row %2 == 1) {
c.setBackground(Color.WHITE);
} else {
c.setBackground(Color.LIGHT_GRAY);
}
}
}
return c;
}
}
Alguém me dá uma luz? B)