Java listener example
The listener works in the Observer mode. Just as stars (event sources) gather together a group of fans (observers ). When stars do something, they will report it through fans. This principle applies to subscription information and calculator buttons.
Below is a small example of a listener:
Package listener;
Import java. util. EventObject;
/**
* Defines the event object to mark the current action. It must inherit EventObject.
* @ Author zyj
*
*/
Public class StateEvent extends EventObject {
Private static final long serialVersionUID = 5323292975415079206L;
Private Enum action;
Public StateEvent (Object source, Enum action ){
Super (source );
This. action = action;
}
Public Enum getAction (){
Return action;
}
Public void setAction (Enum action ){
This. action = action;
}
}
Package listener;
Public enum ActionEnum {
Wake, sleep;
}
Package listener;
Import java. util. EventListener;
/**
* Defines the listener interface and monitors StateEvent events. EventListener must be inherited.
* @ Author zyj
*
*/
Public interface StateListener extends EventListener {
Void handleState (StateEvent event );
}
Package listener;
Public class WakeListener implements StateListener {
@ Override
Public void handleState (StateEvent event ){
If (event. getAction ()! = Null & event. getAction (). equals (ActionEnum. wake )){
System. out. println (you woke up !);
}
}
}
Package listener;
Public class SleepListener implements StateListener {
@ Override
Public void handleState (StateEvent event ){
If (event. getAction ()! = Null & event. getAction (). equals (ActionEnum. sleep )){
System. out. println (You are asleep !);
}
}
}
Package listener;
Import java. util. ArrayList;
Import java. util. List;
Public class StateManager {
Private List List = new ArrayList ();
Public boolean addListener (StateListener listener ){
If (listener = null)
Return false;
Return list. add (listener );
}
Public boolean removeListener (StateListener listener ){
If (listener = null)
Return false;
Return list. remove (listener );
}
Private void policyalllisteners (StateEvent event ){
For (StateListener listener: list ){
Listener. handleState (event );
}
}
Public void wake (){
StateEvent event = new StateEvent (this, ActionEnum. wake );
NotifyAllListeners (event );
}
Public void sleep (){
StateEvent event = new StateEvent (this, ActionEnum. sleep );
NotifyAllListeners (event );
}
}
Package listener;
Public class ListenerTest {
Public static void main (String [] args ){
StateManager manager = new StateManager ();
Manager. addListener (new WakeListener ());
Manager. addListener (new SleepListener ());
Manager. wake ();
System. out. println (-----------------);
Manager. sleep ();
}