[EDIT]
Alguém saberia dizer qual a diferença entre os dois, e exemplos de aplicação?
E como usar um Actionlistener que é disparado por um botão, em um Timer?
Ou seja, usar o recurso Timer para, de tempos em tempos, executar uma Action…
Exemplo:
Como vou usar o timer dentro da Action se ele so aceita ActionListeners como argumentos depois dos milisegundos?
//esta é a action que quero usar com Timer
private static ActionListener actionStart = new ActionListener(){
public void actionPerformed(ActionEvent actionEvent){
//eu poderia colocar o timer aqui para de tempos em tempos chamar o metodo tc.start();
//mas nao dá pq já estou dentro da ActionListener
tc.start();
}
};
private void initComponents()
{
setTitle("Titulo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jButton1 = new javax.swing.JButton();
jButton1.setText("_Start_");
jButton1.addActionListener(actionStart);
}
Como faço para, ao clicar neste botão, ele executar esta action a cada hora?
[]´s
Ahhhhh, uma vez tinha que fazer uma gui bem simples que de tempo em tempo ia no banco e buscava as ultimas atualizacoes e jogava numa JTable :
Adicionei isso aqui :
Timer t1 = new Timer((10000/2), new ActionListener() {
public void actionPerformed(ActionEvent e) {
// faz o que tem que fazer
}
});
t1.setInitialDelay(0);
t1.start();
Tem que forcar o clique do botao de tempo e tempo eh feio, acho melhor vc criar um metodo que faz tudo o que vc quer fazer, colocar no listener desse botao a chamada pra esse metodo.
Monta esse timer de tempo em tempo chamando esse metodo.
Ai vc fica com duas opcoes ou o usuario clica no botao e executa isso, ou entao fica parado e o Timer se encarrega de executar.
Beleza Daniel, vou estudar a sua solução, obrigado!!!
Bom, criei uma solução, não sei se foi a melhor, mas está funcionando.
Criei duas ActionLinsteners, uma com a ação propriamente dita, e outra com o timer recebendo a primeira ação.
assim executo a segunda, e a segunda executa a primeira com um Timer:
private static ActionListener actionStart = new ActionListener(){
public void actionPerformed(ActionEvent actionEvent){
tc.start();
}
};
private static ActionListener actionExecute = new ActionListener(){
public void actionPerformed(ActionEvent actionEvent){
Timer timer = new Timer(1000, actionStart);
timer.start();
}
};
private void initComponents()
{
setTitle("WebService Consulta Indivíduos");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jButton1 = new javax.swing.JButton();
jButton1.setText("_Start_");
jButton1.addActionListener(actionExecute);
Não sei se foi a melhor idéia, se alguém tiver outra sugestão posta ae…
[]´s
Show de bola Fabio, ja tinha visto seu exemplo e inclusive estou com ele rodando aki.
Só q vc fez de uma jeito um pouquinho diferente, implementando a interface ActionListener, mas eu nao queria fazer exatamente assim.
Muito obrigado
[]´s