edu.uah.math.experiments
Class VoterExperiment

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Panel
              extended by java.applet.Applet
                  extended by javax.swing.JApplet
                      extended by edu.uah.math.experiments.Experiment
                          extended by edu.uah.math.experiments.VoterExperiment
All Implemented Interfaces:
IExperiment, Pluginable, java.awt.event.ActionListener, java.awt.event.ItemListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ChangeListener, javax.swing.RootPaneContainer

public class VoterExperiment
extends Experiment
implements java.io.Serializable

This class models the voter experiment. Each member of a rectangular lattice of voters can, at any time, be in one of a finite number of states, represented by colors. At each time, a voter is chosen at random and then a neighbor of the voter is chosen with various probabilities. The state of the chosen voter is then changed to the state of the chosen neighbor.

Version:
August, 2003
Author:
Kyle Siegrist, Dawn Duehring
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JApplet
javax.swing.JApplet.AccessibleJApplet
 
Nested classes/interfaces inherited from class java.applet.Applet
java.applet.Applet.AccessibleApplet
 
Nested classes/interfaces inherited from class java.awt.Panel
java.awt.Panel.AccessibleAWTPanel
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class edu.uah.math.experiments.Experiment
applet, componentPanel, GREEN, RED, showModelDistribution, stopChoice, stopCount, stopFreq, stopNow, time, timer, toolBars, toolIndex, updateCount, updateFreq
 
Fields inherited from class javax.swing.JApplet
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
VoterExperiment()
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          This method handles the events for the probability button.
 void doExperiment()
          This method defines the experiment.
 java.lang.String getAppletInfo()
          This method returns basic information about the applet, including copyright information, descriptive information, and instructions.
 javax.swing.JTable getResultTable()
           
 void init()
          This method initializes the experiment, including the set of voters, the toolbar with choices and labels.
 void itemStateChanged(java.awt.event.ItemEvent e)
          This method handles the events associated with the stop choice and the voter choice.
 void mouseClicked(java.awt.event.MouseEvent e)
          This method handles the mouse events that correspond to clicking on a voter.
 void reset()
          This method resets the experiment, including the voters, and the record table.
 void step()
          This method runs the experiment one time, playing a note that depends on the new state of the voter.
 void update()
          This method updates the display, including the voters and the record table.
 
Methods inherited from class edu.uah.math.experiments.Experiment
addComponent, addComponent, addComponent, addTool, addToolBar, clearToolBars, format, getComponentPanel, getDisplayPane, getMainToolBar, getOnlineDescription, getStopChoice, getStopFreq, getTime, getTimer, getUpdateChoice, graphUpdate, initialize, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, pasteData, playnote, playnote, run, setApplet, setDecimalFormat, setShowModelDistribution, setStopChoice, setStopChoiceTipText, setStopFreq, setStopNow, stateChanged, stop, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
 
Methods inherited from class javax.swing.JApplet
addImpl, createRootPane, getAccessibleContext, getContentPane, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isRootPaneCheckingEnabled, paramString, remove, repaint, setContentPane, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.applet.Applet
destroy, getAppletContext, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, getParameterInfo, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus, start
 
Methods inherited from class java.awt.Panel
addNotify
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, 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, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface edu.ucla.stat.SOCR.core.Pluginable
getName
 

Constructor Detail

VoterExperiment

public VoterExperiment()
Method Detail

init

public void init()
This method initializes the experiment, including the set of voters, the toolbar with choices and labels.

Overrides:
init in class Experiment

getAppletInfo

public java.lang.String getAppletInfo()
This method returns basic information about the applet, including copyright information, descriptive information, and instructions.

Specified by:
getAppletInfo in interface IExperiment
Overrides:
getAppletInfo in class Experiment
Returns:
applet information

doExperiment

public void doExperiment()
This method defines the experiment. A voter is chosen at random and then a neighbor of the voter is chosen according to specified probabilities. The state of the voter is changed to the state of the neighbor. The stop condition is tested.

Specified by:
doExperiment in interface IExperiment
Overrides:
doExperiment in class Experiment

step

public void step()
This method runs the experiment one time, playing a note that depends on the new state of the voter.

Specified by:
step in interface IExperiment
Overrides:
step in class Experiment

reset

public void reset()
This method resets the experiment, including the voters, and the record table.

Specified by:
reset in interface IExperiment
Overrides:
reset in class Experiment

update

public void update()
This method updates the display, including the voters and the record table.

Specified by:
update in interface IExperiment
Overrides:
update in class Experiment

itemStateChanged

public void itemStateChanged(java.awt.event.ItemEvent e)
This method handles the events associated with the stop choice and the voter choice.

Specified by:
itemStateChanged in interface java.awt.event.ItemListener
Overrides:
itemStateChanged in class Experiment
Parameters:
e - the item event

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
This method handles the mouse events that correspond to clicking on a voter. The state of the voter is changed to the edit state, and the record table is updated.

Specified by:
mouseClicked in interface java.awt.event.MouseListener
Overrides:
mouseClicked in class Experiment
Parameters:
e - the mouse event

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
This method handles the events for the probability button. The neighbor probabilities are passed to the probability dialog box which is then displayed. If the user clicks OK, the new probabilities are passed to the voter array.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Overrides:
actionPerformed in class Experiment
Parameters:
e - the action event

getResultTable

public javax.swing.JTable getResultTable()
Specified by:
getResultTable in interface IExperiment
Overrides:
getResultTable in class Experiment