Witam,
Mam klasę generator, która wykonuje zdarzenie co jakiś czas:

 import java.awt.* ;
import java.awt.event.* ;
import javax.swing.*;
import java.util.*;
import java.text.*;
public class Generator extends JLabel implements Runnable
{
public int Gen;
public boolean power=true;
ActionListener actionListener=null;
    
    public Generator()
    {
        Thread Watek = new Thread(this);
        Watek.start();
    }    
    public void genOn()
    {
        power = true;
    }
    
    public void genOff()
    {
        power = false;
    } 
    
    public void run() {
        while(true)
        {
            while(power)
            {
                             if (actionListener != null) 
                        {
                              actionListener.actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "generator"));
                        }
        try { 
                    Thread.sleep(2000);
                } 
                catch( InterruptedException e) {};
        
        
         
        }
            }
    }
        public void addActionListener(ActionListener listener)
    {
            actionListener = AWTEventMulticaster.add(actionListener, listener);
    }
    public void removeActionListener(ActionListener listener)
    {
            actionListener = AWTEventMulticaster.remove(actionListener, listener);
    }
}

Jak w innej klasie, w metodzie

public void actionPerformed(ActionEvent e)

otrzymywać zdarzenie od generatora?
Na przykład:

If( źródło == generator)
klasa.zwiększStan();