⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractlistenercontrol.java

📁 FMJ(freedom media for java)是java视频开发的新选择
💻 JAVA
字号:
package net.sf.fmj.ejmf.toolkit.gui.controls;import java.awt.Component;import java.util.EventListener;import javax.media.Control;import javax.media.Controller;import javax.media.NotRealizedError;/*** An AbstractListenerControl provides a Component-Listener* model for Controls, allowing the two elements to be* changed independently of each other.* <p>* This is the root class from which all EJMF control panel* controls extend.* <p>* Subclasses must implement these methods:* <ul>*    <li>createControlListener()*    <li>createControlComponent()*    <li>addControlListener(EventListener listener)*    <li>removeControlListener(EventListener listener)* </ul>*/public abstract class AbstractListenerControl implements Control {    private EventListener	currListener;    private EventListener	defaultListener;    private Controller		controller;    private Component		component;    protected final Skin skin;	/**	* Create an AbstractListenerControl	*/    protected AbstractListenerControl(Skin skin) {	this.skin = skin;	component = createControlComponent(skin);	initListener(createControlListener());    }	/**	* Create an AbstractListenerControl	* @param controller Controller with which this control is associated.	*/    protected AbstractListenerControl(Skin skin, Controller controller) {	this(skin);	setController(controller);    }	/**	* Associates Controller with this Control.	* @throws IllegalArgumentException	* is thrown if attempt is made to set Controller		* a second time.	* @param controller Controller with which this control is associated.	*/    public void setController(Controller controller) {	// Do not allow Controller to be set a second time.	if (this.controller != null)  {	    throw new IllegalArgumentException("Controller already set on Control");	}	if (controller.getState() < Controller.Realized) {	    throw new NotRealizedError("Control requires realized Controller");	}	this.controller = controller;	setControllerHook(controller);    }	/**	* Subclasses override and provide the guts to	* setControllerHook if they want to augment the	* the work of setController.	* @param controller Controller with which this control is associated.	*/    protected void setControllerHook(Controller controller)  {    }	/**	* Initializes listener, establishes it as default	* and registers it with Control Compoent.		* @param listener Listener object for this control	*/    protected void initListener(EventListener listener) {	defaultListener = listener;	currListener = defaultListener;	addControlListener(defaultListener);    }	/** 	* Return Control Component as required by	* Control inteface.	* @return Control component	*/	    public Component getControlComponent() {	return component;    }	/**	* Set the control listener associated with this Control.	*<p>		* Subclasses should override this method to provide	* a type-safe public version.	* @param listener Listener object for this control	*/    protected void setControlListener(EventListener listener) {	if (currListener != null)	    removeControlListener(currListener);        addControlListener(listener);	currListener = listener;    }	/**	* Set the GUI component associated with this Control.	*<p>		* Subclasses should override this method to provide	* a type-safe public version.	* @param component Component to associate with this control.        */    protected void setComponent(Component component) {	setComponentAndListener(component, getDefaultControlListener());    }	/**	* Set both GUI component and control listener associated	* with this Control.	*<p>		* Subclasses should override this method to provide	* a type-safe public version.	* @param component Component to associate with this control.	* @param listener Listener object for this control      	*/    protected void setComponentAndListener(Component component, 					EventListener listener) {	this.component = component;	setControlListener(listener);    }	/**	* @return the default listener for this Control.    	*/    protected EventListener getDefaultControlListener() {	return defaultListener;    }    /**      * @return fully-qualified class name. This value      * can be used as search key in response to Controller.getControl(name)      */    public String toString() {	return getClass().getName();    }	/**		  * Subclasses of AbstractListenerControl          * must define this method to supply an          * EventListener to handle events originating          * from control's component.	  * <p>	  * Subclasses must not return a null listener.	  * @return an EventListener 	  */    protected abstract EventListener createControlListener();	/** 	* Subclasses defined this method to supply their        * GUI component. Subclasses must not return a null	* component. 	* <p>	* Listener registration is handled        * by AbstractListenerControl.	  * @return a Component	*/    protected abstract Component createControlComponent(Skin skin);	/**	* Since different controls may have different types   	* of listeners, each subclass should define addControlListener    	* to register the correct type of listener with component.	* @param listener Listener object to be added.	*/    protected abstract void addControlListener(EventListener listener);	/**	* Since different controls may have different types   	* of listeners, each subclass should define removeControlListener    	* to remove listener from component listener list in a type-safe 	* way.	* @param listener Listener object to be removed.	*/   protected abstract void removeControlListener(EventListener listener);   private boolean isOperational = true;	/**		* Set the operational state of this Control.		* @param flag Set to true to make control operational.	*/   protected void setOperational(boolean flag) {	isOperational = flag;   }	/**		* Return the operational state of this Control.		* @return true if control is operational	*/   public boolean isOperational() {	return isOperational;   }	/**	* @return associated Controller.	*/   public Controller getController() {	return controller;   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -