Class PhilosopherApplet

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Panel
                    |
                    +--java.applet.Applet
                          |
                          +--PhilosopherApplet
Direct Known Subclasses:
DP

class PhilosopherApplet
extends java.applet.Applet
implements java.awt.event.ActionListener

This is the main class for the Applet. It holds the variable names and the arrays of philosophers. It also links the graphics to their actions. INPUT: none OUTPUT: displays the screen and starts the program ENTRY POINT

See Also:
Serialized Form

Inner classes inherited from class java.awt.Component
java.awt.Component.AWTTreeLock
 
Field Summary
(package private)  java.awt.Graphics buf
           
(package private)  boolean[] forks
           
(package private)  java.awt.Image im
           
(package private)  java.lang.Object lock
           
(package private)  int NUMPHILS
           
(package private)  Philosopher[] philArray
           
(package private)  int running
           
(package private)  int sleep
           
(package private)  java.awt.Scrollbar speedBar
           
(package private)  java.awt.Label speedLabel
           
(package private)  java.awt.Label SpeedLabel
           
(package private)  java.awt.Button startStopButton
           
(package private)  int state
           
(package private)  int stopped
           
(package private)  int suspended
           
 
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
(package private) PhilosopherApplet()
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Catches the button click event INPUT: ActionEvent which is linked to a button press.
 void drawDisc(int X, int Y, int Width, java.awt.Color colo, java.awt.Graphics g)
          Draw a circle with black shadeing.
 void drawPhil(int n, int numPhils, java.awt.Color colo, java.awt.Graphics g)
          Draw the philosophers with scaled size to the applet size INPUT: n, the number of this current philosopher, index 0 numPhils, the total number of philosophers, index 0 Color, the color of the philosophers Graphics class to allow the creation of shapes..
 void drawTable(java.awt.Graphics g)
          Draw the table witch is scaled to the applet size INPUT: Graphics class to allow the creation of shapes..
 boolean handleEvent(java.awt.Event e)
          Catches the scroll bar event INPUT: Event which is linked to a scroll move.
 void init()
          This function will setup the layout of the button elements, as well as link the elements with the actions.
 void paint(java.awt.Graphics g)
          Repaint the screen.
 int speed()
          Return the current sleep value INPUT: none OUTPUT: sleep
 void speedDown()
          Change the speed down of the update, used with the buttons.
 void speedSet(int i)
          Change the speed of the update, used with the scroll bar.
 void speedUp()
          Change the speed up of the update, used with the buttons.
 void start()
          Starts applet and initializes the philosophers INPUT: none OUTPUT: none, but initializes the philosophers
 void stop()
          Starts applet and suspends the philosophers INPUT: none OUTPUT: none, but suspends the philosophers
 void update(java.awt.Graphics g)
          Update and Repaint the screen.
 
Methods inherited from class java.applet.Applet
destroy, getAppletContext, getAppletInfo, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, getParameterInfo, 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, 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, printHeavyweightComponents, printOneComponent, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, readObject, remove, remove, removeAll, removeContainerListener, removeNotify, setCursor, setFocusOwner, setFont, setLayout, 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, 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

NUMPHILS

int NUMPHILS

sleep

int sleep

im

java.awt.Image im

buf

java.awt.Graphics buf

lock

java.lang.Object lock

startStopButton

java.awt.Button startStopButton

SpeedLabel

java.awt.Label SpeedLabel

speedLabel

java.awt.Label speedLabel

speedBar

java.awt.Scrollbar speedBar

stopped

int stopped

running

int running

suspended

int suspended

state

int state

philArray

Philosopher[] philArray

forks

boolean[] forks
Constructor Detail

PhilosopherApplet

PhilosopherApplet()
Method Detail

init

public void init()
This function will setup the layout of the button elements, as well as link the elements with the actions. INPUT: none OUTPUT: none, but initializes the class.
Overrides:
init in class java.applet.Applet

start

public void start()
Starts applet and initializes the philosophers INPUT: none OUTPUT: none, but initializes the philosophers
Overrides:
start in class java.applet.Applet

stop

public void stop()
Starts applet and suspends the philosophers INPUT: none OUTPUT: none, but suspends the philosophers
Overrides:
stop in class java.applet.Applet

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Catches the button click event INPUT: ActionEvent which is linked to a button press. OUTPUT: none
Specified by:
actionPerformed in interface java.awt.event.ActionListener

handleEvent

public boolean handleEvent(java.awt.Event e)
Catches the scroll bar event INPUT: Event which is linked to a scroll move. OUTPUT: none
Overrides:
handleEvent in class java.awt.Component

drawTable

public void drawTable(java.awt.Graphics g)
Draw the table witch is scaled to the applet size INPUT: Graphics class to allow the creation of shapes.. OUTPUT: none, modifies Graphics

drawPhil

public void drawPhil(int n,
                     int numPhils,
                     java.awt.Color colo,
                     java.awt.Graphics g)
Draw the philosophers with scaled size to the applet size INPUT: n, the number of this current philosopher, index 0 numPhils, the total number of philosophers, index 0 Color, the color of the philosophers Graphics class to allow the creation of shapes.. OUTPUT: none, modifies Graphics

drawDisc

public void drawDisc(int X,
                     int Y,
                     int Width,
                     java.awt.Color colo,
                     java.awt.Graphics g)
Draw a circle with black shadeing. INPUT: X direction, int, in pixels Y direction, int, in pixels Width, int, in pixels (NOTE: uses the rectangle system, so the center will not be X,Y Color, the color of the circle Graphics class to allow the creation of shapes.. OUTPUT: none, modifies Graphics

paint

public void paint(java.awt.Graphics g)
Repaint the screen. INPUT: Graphics class to allow the creation of shapes.. OUTPUT: none, modifies Graphics
Overrides:
paint in class java.awt.Container

update

public void update(java.awt.Graphics g)
Update and Repaint the screen. INPUT: Graphics class to allow the creation of shapes.. OUTPUT: none, modifies Graphics
Overrides:
update in class java.awt.Container

speedSet

public void speedSet(int i)
Change the speed of the update, used with the scroll bar. INPUT: i, number of mil. sec. that you want the sleep set to OUTPUT: none, modifies sleep

speedUp

public void speedUp()
Change the speed up of the update, used with the buttons. not used right now but might be useful later INPUT: none OUTPUT: none, modifies sleep

speedDown

public void speedDown()
Change the speed down of the update, used with the buttons. not used right now but might be useful later INPUT: none OUTPUT: none, modifies sleep

speed

public int speed()
Return the current sleep value INPUT: none OUTPUT: sleep