Ola galera quando eu executo fora do render ele faz o calculo de horas e me da um resultado corretamente mas quando testo dentro do render ele fica tudo verde e não executa de acordo com os calculos podem me dar uma força acredito que não esteja usando row corretamente
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component comp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
String estado = table.getModel().getValueAt(row, 7).toString();
System.out.print(estado+"\n");
SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss");
Date data = new Date();
String HoraAgora = format.format(data);
String Horas = estado.substring(0, 2);
String Minutos = estado.substring(3, 5);
String Segundos = estado.substring(6, 8);
int IntHoras = Integer.parseInt(Horas);
int IntMinutos = Integer.parseInt(Minutos);
int IntSegundos = Integer.parseInt(Segundos);
//PegandoHoraAtual
String AtualHoras = HoraAgora.substring(0, 2);
String AtualMinutos = HoraAgora.substring(3, 5);
String AtualSegundos = HoraAgora.substring(6, 8);
int IntAtualHoras = Integer.parseInt(AtualHoras);
int IntAtualMinutos = Integer.parseInt(AtualMinutos);
int IntAtualSegundos = Integer.parseInt(AtualSegundos);
LocalTime horaPedido = LocalTime.of(IntHoras, IntMinutos); // pedido feito às 21:10:00
LocalTime horaAtual = LocalTime.of(IntAtualHoras,IntAtualMinutos);
// subtrair 20 minutos da hora do pedido:
LocalTime horaPedidoSubtraida = horaPedido.minusMinutes(20);
if (horaAtual.isBefore(horaPedidoSubtraida)) {
comp.setBackground(Color.GREEN);
comp.setForeground(Color.BLACK);
}
if (horaAtual.isAfter(horaPedido)) {
comp.setBackground(Color.RED);
comp.setForeground(Color.BLACK);
}
if (horaAtual.isAfter(horaPedidoSubtraida)) {
comp.setBackground(Color.YELLOW);
comp.setForeground(Color.BLACK);
}
return comp;
}