com.jimweller.cpuscheduler
Class CPUSchedulerFrame

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Frame
                  extended byjavax.swing.JFrame
                      extended bycom.jimweller.cpuscheduler.CPUSchedulerFrame
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class CPUSchedulerFrame
extends javax.swing.JFrame
implements java.awt.event.ActionListener

CPUSchedulerFrame is a JFrame that contains and represents a CPUScheduler object. One can load random and predetermined data sets, run simulations from a GUI and watch an animation of the process thanks to to a time signal responded to using the ActionListener interface.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
(package private)  javax.swing.JLabel algolLbl
           
(package private)  javax.swing.JMenu algorithmMenu
           
(package private)  javax.swing.JPanel buttonPanel
           
(package private)  javax.swing.JPanel contentPane
           
(package private)  javax.swing.JSlider countSlider
           
(package private)  CPUScheduler cpu
           
(package private)  ClockPanel cpuTimePanel
           
(package private)  javax.swing.JSlider delaySlider
           
(package private)  javax.swing.JRadioButtonMenuItem fcfsRB
           
(package private)  javax.swing.JMenu fileMenu
           
(package private)  java.lang.String fileName
           
(package private)  int fps
           
(package private)  javax.swing.JRadioButtonMenuItem fps100MI
           
(package private)  javax.swing.JRadioButtonMenuItem fps10MI
           
(package private)  javax.swing.JRadioButtonMenuItem fps1MI
           
(package private)  javax.swing.JRadioButtonMenuItem fps20MI
           
(package private)  javax.swing.JRadioButtonMenuItem fps30MI
           
(package private)  javax.swing.JRadioButtonMenuItem fps40MI
           
(package private)  javax.swing.JRadioButtonMenuItem fps50MI
           
(package private)  javax.swing.JRadioButtonMenuItem fps60MI
           
(package private)  javax.swing.JRadioButtonMenuItem fps70MI
           
(package private)  javax.swing.JRadioButtonMenuItem fps80MI
           
(package private)  javax.swing.JRadioButtonMenuItem fps90MI
           
(package private)  int frameNumber
           
(package private)  boolean frozen
           
(package private)  javax.swing.JSlider lengthSlider
           
(package private)  javax.swing.JMenuBar menuBar
           
(package private)  javax.swing.JMenuItem newMI
           
(package private)  javax.swing.JFileChooser openFileDialog
           
(package private)  BetterFileFilter openFilter
           
(package private)  javax.swing.JMenuItem openMI
           
(package private)  javax.swing.JMenu optionsMenu
           
(package private)  javax.swing.ImageIcon pausePic
           
(package private)  javax.swing.ImageIcon playPic
           
(package private)  javax.swing.JCheckBoxMenuItem preemptCB
           
(package private)  javax.swing.ImageIcon pressPic
           
(package private)  javax.swing.JCheckBoxMenuItem priCB
           
(package private)  javax.swing.JRadioButtonMenuItem priRB
           
(package private)  javax.swing.JSlider quantumSlider
           
(package private)  javax.swing.JPanel queuePanel
           
(package private)  javax.swing.JMenuItem quitMI
           
(package private)  javax.swing.JMenuItem resetMI
           
(package private)  StatsPanel responseSP
           
(package private)  javax.swing.JRadioButtonMenuItem rrRB
           
(package private)  BetterFileFilter saveFilter
           
(package private)  javax.swing.JMenuItem saveMI
           
(package private)  javax.swing.JCheckBoxMenuItem showHiddenCB
           
(package private)  javax.swing.JRadioButtonMenuItem sjfRB
           
(package private)  javax.swing.JMenu speedMenu
           
(package private)  javax.swing.JCheckBox startCB
           
(package private)  javax.swing.JLabel statusBar
           
(package private)  javax.swing.Timer timer
           
(package private)  StatsPanel turnSP
           
(package private)  StatsPanel waitSP
           
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Window
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
CPUSchedulerFrame()
          Default constructor, builds and displays a random CPUScheduler object.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          A long gory event handler.
(package private)  void buildButtons()
          Build the buttons for the applications
(package private)  void buildFileDialog()
          Setup an open and save dialog for later use.
(package private)  void buildMenus()
          Gory! Build all the menus for the application.
(package private)  void buildStatusPanels()
          Setup the panels used to display status.
 void emptyQueuePanel()
          Remove all panels from the box that contains the graphical representation of the ready queue
 void fillQueuePanel()
          Display the jobs from the CPUScheduler on a blank jobQueue
 void resetQueuePanel()
          Redisplay all hidden ProcessPanels
(package private)  void setFPS(int delay)
          Set the frames per second for the animation.
 void start()
          Invoked by the browser only.
 void startAnimation()
          Can be invoked from any thread.
 void stop()
          Invoked by the browser only.
 void stopAnimation()
          Can be invoked from any thread.
(package private)  void updateReadouts()
          Update the status displays (but not the scheduling queue)
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setIconImage, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

cpu

CPUScheduler cpu

startCB

javax.swing.JCheckBox startCB

playPic

javax.swing.ImageIcon playPic

pausePic

javax.swing.ImageIcon pausePic

pressPic

javax.swing.ImageIcon pressPic

menuBar

javax.swing.JMenuBar menuBar

fileMenu

javax.swing.JMenu fileMenu

algorithmMenu

javax.swing.JMenu algorithmMenu

optionsMenu

javax.swing.JMenu optionsMenu

speedMenu

javax.swing.JMenu speedMenu

newMI

javax.swing.JMenuItem newMI

openMI

javax.swing.JMenuItem openMI

resetMI

javax.swing.JMenuItem resetMI

saveMI

javax.swing.JMenuItem saveMI

quitMI

javax.swing.JMenuItem quitMI

fps1MI

javax.swing.JRadioButtonMenuItem fps1MI

fps10MI

javax.swing.JRadioButtonMenuItem fps10MI

fps20MI

javax.swing.JRadioButtonMenuItem fps20MI

fps30MI

javax.swing.JRadioButtonMenuItem fps30MI

fps40MI

javax.swing.JRadioButtonMenuItem fps40MI

fps50MI

javax.swing.JRadioButtonMenuItem fps50MI

fps60MI

javax.swing.JRadioButtonMenuItem fps60MI

fps70MI

javax.swing.JRadioButtonMenuItem fps70MI

fps80MI

javax.swing.JRadioButtonMenuItem fps80MI

fps90MI

javax.swing.JRadioButtonMenuItem fps90MI

fps100MI

javax.swing.JRadioButtonMenuItem fps100MI

fcfsRB

javax.swing.JRadioButtonMenuItem fcfsRB

sjfRB

javax.swing.JRadioButtonMenuItem sjfRB

rrRB

javax.swing.JRadioButtonMenuItem rrRB

priRB

javax.swing.JRadioButtonMenuItem priRB

preemptCB

javax.swing.JCheckBoxMenuItem preemptCB

priCB

javax.swing.JCheckBoxMenuItem priCB

showHiddenCB

javax.swing.JCheckBoxMenuItem showHiddenCB

statusBar

javax.swing.JLabel statusBar

algolLbl

javax.swing.JLabel algolLbl

waitSP

StatsPanel waitSP

turnSP

StatsPanel turnSP

responseSP

StatsPanel responseSP

cpuTimePanel

ClockPanel cpuTimePanel

delaySlider

javax.swing.JSlider delaySlider

lengthSlider

javax.swing.JSlider lengthSlider

countSlider

javax.swing.JSlider countSlider

quantumSlider

javax.swing.JSlider quantumSlider

openFileDialog

javax.swing.JFileChooser openFileDialog

openFilter

BetterFileFilter openFilter

saveFilter

BetterFileFilter saveFilter

frameNumber

int frameNumber

fps

int fps

timer

javax.swing.Timer timer

frozen

boolean frozen

contentPane

javax.swing.JPanel contentPane

queuePanel

javax.swing.JPanel queuePanel

buttonPanel

javax.swing.JPanel buttonPanel

fileName

java.lang.String fileName
Constructor Detail

CPUSchedulerFrame

public CPUSchedulerFrame()
Default constructor, builds and displays a random CPUScheduler object.

Method Detail

emptyQueuePanel

public void emptyQueuePanel()
Remove all panels from the box that contains the graphical representation of the ready queue


resetQueuePanel

public void resetQueuePanel()
Redisplay all hidden ProcessPanels


fillQueuePanel

public void fillQueuePanel()
Display the jobs from the CPUScheduler on a blank jobQueue


buildStatusPanels

void buildStatusPanels()
Setup the panels used to display status. CPU time, wait time, response time and turnaround time


actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
A long gory event handler. Checks the origin of the event and responds accordingly.

Specified by:
actionPerformed in interface java.awt.event.ActionListener

start

public void start()
Invoked by the browser only. invokeLater not needed because startAnimation can be called from any thread.


stop

public void stop()
Invoked by the browser only. invokeLater not needed because stopAnimation can be called from any thread.


startAnimation

public void startAnimation()
Can be invoked from any thread.


stopAnimation

public void stopAnimation()
Can be invoked from any thread.


updateReadouts

void updateReadouts()
Update the status displays (but not the scheduling queue)


buildFileDialog

void buildFileDialog()
Setup an open and save dialog for later use.


buildMenus

void buildMenus()
Gory! Build all the menus for the application.


setFPS

void setFPS(int delay)
Set the frames per second for the animation. It is bounded by the speed of your hardware of course.


buildButtons

void buildButtons()
Build the buttons for the applications