Eu acho melhor criar esta outra classe e implementar um listener nela.
Ai na sua classe principal onde tem o label, vc poderia colocar um evento no listener da classe que despara o evento de tempo em tempo.
Assim uma coisa não fica presa na outra, vou tentar codificar aqui hehe
Vou usar uma unica referência de listener (não um array) para simplificar a vida.
dai é só chamar o metodo dispara listener na sua classe quando tiver que alertar as outras aplicações
class DisparadorDeTempo
{
ActionListener listener;
DisparadorDeTempo(ActionListener listener)
{
this.listener = listener;
}
private void disparaListener(String texto)
{
listener.actionPerformed(new ActionEvent(texto, 0, "performed"));
}
}
Depois no seu principal ao instanciar o seu disparador é só vc criar o evento e setar o label.
DisparadorDeTempo disparadorDeTempo = new DisparadorDeTempo(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
label.setText(e.getSource.toString());
}
});
isso ai é para explicar o funcionamento dos listener.
O mais adequado é vc riar seu listener e o seu evento já com os tipos certos de construtor e tipos de variaveis.
Mas já é um começo.