Class FeedbackApplet

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Panel
                    |
                    +--java.applet.Applet
                          |
                          +--BaseApplet
                                |
                                +--BaseApplet2
                                      |
                                      +--EmissionApplet
                                            |
                                            +--FeedbackApplet
Direct Known Subclasses:
FourLevels

public class FeedbackApplet
extends EmissionApplet

As for the Emission/Absorption Applet, but with the addition of feedback and an exit rate graph.

See Also:
Serialized Form

Inner classes inherited from class EmissionApplet
EmissionApplet.Electron, EmissionApplet.Photon
 
Inner classes inherited from class BaseApplet2
BaseApplet2.FixedButton, BaseApplet2.FixedCheckbox, BaseApplet2.GraphClickListener
 
Inner classes inherited from class BaseApplet
BaseApplet.MozillaWorkaround, BaseApplet.ResizeListener
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AWTTreeLock
 
Field Summary
protected  java.awt.TextField dtField
           
protected  TimeGraph exitDensity
           
protected  int exited
          The number of electrons that have left since the "Exit rate" label was last updated
protected  java.lang.String exitMessage
          The text of the "Exit rate" label
protected  java.awt.TextField feedbackField
           
protected  double feedbackRate
          Average proportion of photons leaving the simulation (by reaching the extreme right of the display, not by absorption) which will be returned to the start.
protected  double loopTime
          Time between updates to the exit rate label
protected  int obsCount
          The number of electrons that have left since the last observation was added to the "exit rate" graph
protected  int observations
          Number of samples to fit on the "exit rate" graph
protected  double obsTimer
          Time elapsed since last observation was added to the exit rate graph
protected  Plotter2 plotter
           
protected  double sampleTime
          Time between updates to the exit rate label
protected  double t
          Time elapsed since last update to the exit rate label
 
Fields inherited from class EmissionApplet
absorb, absorbField, destroy, destroyPhotons, dt, electrons, electronSpeed, emit, emitField, exciteAll, excitedY, exciteNone, hGap, hMargin, inversionField, invert, margin, normalY, photons, pump, pumpField, simH, simW, sinTable, spont, spontField, thr, vMargin, waveDispLen
 
Fields inherited from class BaseApplet2
boxes, buttons, enablePrompt, fields, focus, panel, statusLabel, useSwing, V_MARGIN
 
Fields inherited from class BaseApplet
buffer, GRAPH_MARGIN, refresh, resizeListener, safetyLimit, useBuffer
 
Fields inherited from class java.applet.Applet
serialVersionUID, stub
 
Fields inherited from class java.awt.Panel
base, nameCounter, serialVersionUID
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dispatcher, layoutMgr, maxSize, ncomponents, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, assert, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, changeSupport, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, hasFocus, height, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, serialVersionUID, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowListenerK, x, y
 
Constructor Summary
FeedbackApplet()
           
 
Method Summary
protected  void addFields()
          Adds the text fields to the GUI
protected  int cullPhotons()
          As for the superclass method, but also introduces a probality (the feedback rate) that a photon returns to the start of the simulation.
 void doPaint(java.awt.Graphics g)
          Called by forcePaint() to actually perform the painting.
 void init()
          Performs extra initialisation, including adding a panel to the bottom of the applet.
 void updateInput()
          Reads in (and validates) input from the text fields.
 void updatePhotons(double dt)
          As for the superclass method, but also keeps track of the number of electrons leaving.
 
Methods inherited from class EmissionApplet
actionPerformed, buildSineTable, calcInversion, createElectrons, destroyPhotons, findElectron, invert, killAnim, paintElectrons, paintPhotons, paintWave, run, setAllExcited, sin, spawnPhoton, start, startAnim, stop, updateElectrons
 
Methods inherited from class BaseApplet2
add, add, addButton, addCheckbox, addField, addField, addField, addListeners, focusGained, focusLost, getDouble, getGraphHeight, getInt, lockControls, makeButton, makePanel, paintDashedLineH, paintDashedLineV, register, removeListeners, setComponentsEnabled, setLayout, setPromptEnabled, textValueChanged, toString, unlockControls
 
Methods inherited from class BaseApplet
changeFont, forcePaint, getAppletInfo, getParameterInfo, itemStateChanged, paint, refresh, update
 
Methods inherited from class java.applet.Applet
destroy, getAppletContext, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus
 
Methods inherited from class java.awt.Panel
, addNotify, constructComponentName
 
Methods inherited from class java.awt.Container
add, add, add, add, addContainerListener, addImpl, applyOrientation, countComponents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getCursorTarget, getInsets, getLayout, getMaximumSize, getMinimumSize, getMouseEventTarget, getPreferredSize, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPrint, list, list, locate, minimumSize, nextFocus, paintComponents, paramString, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, print, printComponents, printOneComponent, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, readObject, remove, remove, removeAll, removeContainerListener, removeNotify, setCursor, setFocusOwner, setFont, transferFocus, updateCursor, validate, validateTree, writeObject
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, areInputMethodsEnabled, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputContext, getInputMethodRequests, getIntrinsicCursor, getLocation, getLocation, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getSize, getToolkit, getToolkitImpl, getTreeLock, getWidth, getWindowForObject, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isEnabledImpl, isFocusTraversable, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

exited

protected int exited
The number of electrons that have left since the "Exit rate" label was last updated

observations

protected int observations
Number of samples to fit on the "exit rate" graph

obsCount

protected int obsCount
The number of electrons that have left since the last observation was added to the "exit rate" graph

exitMessage

protected java.lang.String exitMessage
The text of the "Exit rate" label

t

protected double t
Time elapsed since last update to the exit rate label

obsTimer

protected double obsTimer
Time elapsed since last observation was added to the exit rate graph

loopTime

protected double loopTime
Time between updates to the exit rate label

sampleTime

protected double sampleTime
Time between updates to the exit rate label

feedbackRate

protected double feedbackRate
Average proportion of photons leaving the simulation (by reaching the extreme right of the display, not by absorption) which will be returned to the start.

feedbackField

protected java.awt.TextField feedbackField

dtField

protected java.awt.TextField dtField

exitDensity

protected TimeGraph exitDensity

plotter

protected Plotter2 plotter
Constructor Detail

FeedbackApplet

public FeedbackApplet()
Method Detail

init

public void init()
Description copied from class: BaseApplet2
Performs extra initialisation, including adding a panel to the bottom of the applet.
Overrides:
init in class EmissionApplet

addFields

protected void addFields()
Description copied from class: EmissionApplet
Adds the text fields to the GUI
Overrides:
addFields in class EmissionApplet

cullPhotons

protected int cullPhotons()
As for the superclass method, but also introduces a probality (the feedback rate) that a photon returns to the start of the simulation. (This obviously does not apply to absorbed photons.)

The number returned does not include absorbed photons.

Overrides:
cullPhotons in class EmissionApplet
Tags copied from class: EmissionApplet
Returns:
The number of photons leaving

updatePhotons

public void updatePhotons(double dt)
As for the superclass method, but also keeps track of the number of electrons leaving.
Overrides:
updatePhotons in class EmissionApplet

doPaint

public void doPaint(java.awt.Graphics g)
Description copied from class: BaseApplet
Called by forcePaint() to actually perform the painting. Subclasses should implement this method as if it were the standard paint() method; buffering will then take place transparently.
Overrides:
doPaint in class EmissionApplet
Tags copied from class: BaseApplet
Parameters:
g - The Graphics object on which to paint

updateInput

public void updateInput()
Description copied from class: EmissionApplet
Reads in (and validates) input from the text fields.
Overrides:
updateInput in class EmissionApplet
Tags copied from class: EmissionApplet
Throws:
java.lang.IllegalArgumentException - if any input fields are invalid