Olá amigos,
Meu velho amigo timer precisa fazer algo por mim.
Meu timer (que calcula e escreve um valor segundo a segundo) preciso ao invez de escrever/setar esse valor em algum lugar, retornar esse valor, para eu poder jogar seu método dentro do meu TableModel e ele ja se atualizar.
Resumindo, preciso que o método abaixo retorne uma string:
public void calculaTempo(final JTable table, final int linha) {
String tempoCalculado = "";
TimerTask tarefa = new TimerTask() {
@Override
public void run() {
horarioAtual = Calendar.getInstance();
if (horarioAtual.getTimeInMillis() < horarioLimite.getTimeInMillis()) {
long milisegundoRestante = horarioLimite.getTimeInMillis() - horarioAtual.getTimeInMillis();
long minutoRestante = (long)milisegundoRestante/60000;
table.setValueAt(getTempo(minutoRestante), linha, 5);
System.out.println("ok");
}
if (horarioAtual.getTimeInMillis() > horarioLimite.getTimeInMillis()) {
long milisegundoExcedido = horarioAtual.getTimeInMillis() - horarioInicial.getTimeInMillis();
long minutoExcedido = (long)milisegundoExcedido/60000;
table.setValueAt("Excedido - " + getTempo(minutoExcedido), linha, 5);
for (int c = 0; c < table.getColumnCount(); c++) {
table.setDefaultRenderer(table.getColumnClass(c), renderer);
}
}
}
};
cronometro.scheduleAtFixedRate(tarefa, 0, 1000);
this.cronometro = null;
}
num futuro próximo vou rescrever a classe utilizando joda-time, mas no momento preciso de verdade que isso funcione com o método acima.
Obrigado, abraços.