Events and Listeners

Specifying Events

To define an event, you declare a name for the event in the events block. Then one of the class methods triggers the event using the notify method, which is method inherited from the handle class. Only classes derived from the handle class can define events.

For example, the following class:

  • Defines an event named StateChange

  • Triggers the event using the inherited notify method.

classdef class_name < handle % Subclass handle
   events % Define an event called StateChange
      StateChange
   end
   ...
   methods
      function upDateGUI(obj)
         ...
         % Broadcast notice that StateChange event has occurred
         notify(obj,'StateChange');
      end
   end
end

Listening for Events

Any number of objects can be listening for the StateChange event to occur. When notify executes, MATLAB® calls all registered listener callbacks and passes the handle of the object generating the event and an event structure to these functions. To register a listener callback, use the addlistener method of the handle class.

addlistener(event_obj,'StateChange',@myCallback)

See Learning to Use Events and Listeners for more information on using events and listeners.

Was this topic helpful?