Atualização de tabela com TimerTask

2 respostas
jackJava

Boa tarde pessoal!

Sou novato em Java. Programo PHP, Javascript, C# entre outros.

Estou com algumas dificuldades e gostaria de compartilhar com vcs. Segue abaixo a primeira.

int delay = 5000;   // delay for 5 sec.
                int period = 5000;  // repeat every sec.
                Timer timer = new Timer();
                
                timer.scheduleAtFixedRate(new TimerTask() {
                        public void run() {
                        	//System.out.println("Rodou");
                        	Principal p = new Principal();
                        	p.table.refresh();
                        }
                }, delay, period);

Tenho o trecho de código acima no método main da classe principal. Teóricamente, ele deveria chamar (e executar o método abaixo) que esta em uma classe chamada GridGraficos.

public void refresh() {
		tableModel.removeData();
		//tableModel.fireTableDataChanged();
		
		XML url = new XML();
		//this.populate(XML.ler(dataFilePath));
		
		System.out.println("Atualizou tabela");
	}

O que acontece é que somente é impresso o Atualizou tabela e o tableModel.removeData(); e o restante simplesmente não executam.

Aguardo ajuda dos mestres ;)

2 Respostas

ivo_costa

Possiveis causas:

O seu código está comentado (//) e código comentado não executa.
Está ocorrendo uma exceção, e tudo que vem depois da exceção (sem try) não executa.

Aparece algum erro no console?
Vc tentou debugar?
Se o código é realmente esse debaixo, retire os // e tente novamente.

jackJava

Oi Ivo e pessoal.

Primeiro, obrigado pela resposta.

Vou tentar melhorar a questão.

Tenho uma classe chamada Principal e no método main tenho:

int delay = 5000;   // delay for 5 sec.   
       int interval = 1000;  // iterate every sec.   
       Timer timer = new Timer();   
          
       timer.scheduleAtFixedRate(new TimerTask() {   
               public void run() {   
                  GridGraficos gridG = new GridGraficos();   
                  gridG.refresh();   
               }   
           }, delay, interval);

Essa GridGraficos é outra classe e a mesma possui o método refresh que segue abaixo.

public void refresh() {   
      tableModel.removeData();   
               
      //XML url = new XML();   
      //this.populate(XML.ler(dataFilePath));   
         
      System.out.println("Atualizou tabela");   
   }

Neste método refresh o intuito seria (num primeiro momento, só para testes) remover todo o conteúdo da tabela (objeto Jtable).

O que acontece é que o método é executado mas nao remove o conteúdo da tabela, apenas imprimi o "Atualizou tabela".

Ignore os comentários, ok?

Será que fui mais claro..rsrs..ainda to apanhando pro java.. :(

Abraço

Criado 17 de julho de 2008
Ultima resposta 17 de jul. de 2008
Respostas 2
Participantes 2