📄 standardgainmetercontrol.java
字号:
package net.sf.fmj.ejmf.toolkit.gui.controls;import java.awt.Component;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.EventListener;import javax.media.Controller;import javax.media.GainChangeEvent;import javax.media.GainChangeListener;import javax.media.GainControl;import javax.swing.SwingUtilities;/*** Gain meter Control for StandardControlPanel.*/public class StandardGainMeterControl extends AbstractGainControl implements GainChangeListener { /** Create a StandardGainMeterControl and associate it * with a Controller. * @param controller A Controller with which control is associated. */ public StandardGainMeterControl(Skin skin, Controller controller) { super(skin, controller); } /** Create a StandardGainMeterControl */ public StandardGainMeterControl(Skin skin) { super(skin); } /** * This method is called when <code>setController</code> * is called on an AbstractListenerControl. * @param newController A Controller with which this control * is associated. */ protected void setControllerHook(Controller newController) { super.setControllerHook(newController); if (isOperational()) { GainControl gc = getGainControl(); setLevel(gc.getLevel()); setMute(gc.getMute()); gc.addGainChangeListener(this); } } /** * Create the GainMeter Component. * @return The component that acts as gain meter control. * @see net.sf.fmj.ejmf.toolkit.gui.controls.skins.ejmf.GainMeterButton */ @Override protected Component createControlComponent(Skin skin) { return skin.createGainMeterButton(); } /** * Set the level value for this GainMeter. * The input argument is a level value from the * Player's GainControl. It is the GainMeter's * responsibility to convert it to a value that * can be meaningfully rendered. * * @param level This argument represents a level * value returned by a Player's GainControl. */ public void setLevel(float level) { ((GainMeter) getControlComponent()).setLevel(level); } /** * Set the mute value for this GainMeter. * * @param muted If muted is true, audio signal is * suppressed. Otherwise, audio signal is rendered. */ public void setMute(boolean muted) { ((GainMeter) getControlComponent()).setMute(muted); } /** * Return the ActionListener used to toggle * mute button. * @return An ActionListener for toggling mute state. */ protected EventListener createControlListener() { return new ActionListener() { public void actionPerformed(ActionEvent e) { GainControl gc = getGainControl(); boolean muted = gc.getMute(); gc.setMute(!muted); setMute(!muted); } }; } /** * Implements GainChangeListener. Level and mute * are set appropriately and the view updated for every * change to the GainControl on which this GainMeter is a * listener. * @param gce An GainChangeEvent triggerd by a GainControl * @see javax.media.GainControl * @see javax.media.GainChangeEvent */ public void gainChange(GainChangeEvent gce) { float level = gce.getSourceGainControl().getLevel(); SwingUtilities.invokeLater(new SetLevelThread(level)); } /* A convenience runnable for manipulating * level as displayed in GUI. */ class SetLevelThread implements Runnable { private float level; public SetLevelThread(float level) { this.level = level; } public void run() { setLevel(level); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -