Boas eu criei uma aplicação swing que realiza diversas tarefas a partir dos correspondentes botões. Para criar esta aplicação utilizei um metodo exemplificado já n sei onde e que dizia usar isto:
public static void main (String[] args)
{
javax.swing.SwingUtilities.invokeLater (new Runnable ()
{
public void run ()
{
createAndShowGUI();
}
});
}
Pronto, a partir da funcao createAndShowGUI () criei um Frame com os seus botões e cada um deles associados a um ActionListener.
O programa funciona optimamente, agora o meu problema é que eu queria que o programa estivesse também a executar sempre uma tarefa de fundo, como se por exemplo eu estivesse sempre a carregar num mesmo botão e ele estivesse sempre a realizar essa tarefa. Onde é que eu poria essa função? Isto por outras palavras, onde é que fica a linha de acção do programa quando não está a executar nenhuma das tarefas dos botões, quando esta só a mostrar a tela à espera que eu carregue num dos botões?
Espero que tenham percebido esta duvida de principiante…
Você quer algo um tanto avançado, recomendo que leia a matéria sobre Threads na seção de Tutoriais/Artigos do site.
Creio que Threads com certeza, é a resolução para isso. Só estudar um pouco irmãozinho
Qualquer coisa posta aí, sobre alguma dúvida relativa a implementação.
Mas leia e pesquise sobre Threads em Java antes!
Forte Abraço
Ass. lordtiago
Toda vez que você inicia um JFrame, a AWT cria uma fila de mensagens e começa a escutar por eventos do Windows (e dela própria). O código fica parado nessa fila, que verifica que botões foram pressionados, redesenha a tela, e faz as ações necessárias para manter o ambiente gráfico. Você não precisa manipular essa fila diretamente, salvo raras exceções (como ao usar o método invokeLater).
Para realizar uma ação no botão, você deve adicionar um listener nesse botão, por exemplo:
eu isso de associar uma accao a determinado botao sei fazer. o que eu queria era saber como e onde posso adicionar uma função/acção que esteja sempre a ser executada, nos momentos em que o programa espera que eu carrega nos botoes.