ukacgla_ATT
Class TableUI

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--ukacgla_ATT.TableUI
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants
Direct Known Subclasses:
Ex01_TableUI

public abstract class TableUI
extends javax.swing.JFrame

When instantiated, calls abstract mehod createExercise(). createExercise() must generate the JInternal Frames to display the exercise, then create the GUI, then create the truth table and Checker object that verifies the student input.

See Also:
Serialized Form

Inner Class Summary
protected  class TableUI.ButtonListener
           
protected  class TableUI.checkBoxListener
           
protected  class TableUI.MyTableModel
           
 
Inner classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Inner classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Inner classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent
 
Field Summary
protected  javax.swing.JPanel buttonPanel
           
protected  javax.swing.JCheckBox[] checkBox
          Array contains JCheckBoxes for selecting individual lines
protected  javax.swing.JButton clear
          Activate JButton to clear all student input from table
protected  java.util.Vector colTitle
          Defines column headers, and used extensively to set the size of the TableModel
protected  java.lang.String[] columnNames
          Holds the headers for each column
protected  java.awt.Container contentPane
          contentPane the exercise will be displayed on
protected  java.lang.Object[][] data
          Holds data displyed through the TableModel
protected  circuitGraphics diagram
          Object instantiates circuitGrpahics object.
protected  frameMaker gui
          Object allows generation of JInternalFrames.
protected  TableUI.checkBoxListener listener
          JCheckBox listener
protected  Checker marker
          Checks answers and provides hints
protected  javax.swing.JPanel middle
           
protected  TableUI.MyTableModel myModel
          Holds and presents Truth Table data
protected  javax.swing.JButton nextCircuit
          Activate JButton to generate next circuit
protected  int noOfOutPuts
          Number of columns containing outputs
protected  int noOfRows
          Holds number of rows to be used with the TableModel
protected  javax.swing.JTextArea output
          JTextArea for displaying program output.
protected  TTRandom random
          Hold random numbers used to generate circuit.
protected  javax.swing.JButton submit
          Activate JButton to submit student answers for checking
protected  javax.swing.JInternalFrame tableFrame
          Internal frame to display on Truth table.
protected  javax.swing.JPanel truthTable
           
 
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, 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.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
TableUI(frameMaker g)
          Requires a frameMaker object to allow creation of JInternalFrames
 
Method Summary
 void checkAnswers()
          Method to compare answers versus real.
protected  void clearChkbox()
          Sets all JCheckBoxes in GUI to de-selected.
 void clearTxtArea()
          Sets output JTextArea to new blank String ( "" )
protected abstract  void createExercise()
          Creates JInternalFrames, mkTable and Checker objects.
 java.lang.String getCellValue(int row, int col)
          Returns contents of specified table cell
 void makeDialog(java.lang.String title, java.lang.String message, int messageType, int optionType)
           
protected  javax.swing.JButton mkButton(java.lang.String nm, java.awt.Container c)
          Returns JButton at defined size (100,25) with actionListener included
protected  javax.swing.JCheckBox mkChkButton(java.awt.Container b, java.lang.String name, boolean checked)
          Returns JCheckBox at defined size (120,20) with checkBoxListener included
protected  java.awt.GridBagConstraints mkConstraints(int gridX, int gridY, int fill, int gridWidth, int gridHeight, double weightX, double weightY, int anchor, int padX, int padY)
          All arguments are used to create a GridBagConstraints object.
protected  javax.swing.JLabel mkLabel(java.lang.String nm, int style, int size)
          Returns JLabel in arial Font, with programmer specifed Font style and size.
protected  javax.swing.JTextArea mkTextArea(int rows, int cols, boolean editable)
          Returns JTextArea at defined size (rows x cols).
protected  void setCellValue(java.lang.Object value, int row, int col, java.lang.Object[][] a)
          Set contents of the 2D array supplied as an argument to the object specified.
 void setTxtArea(java.lang.String s)
          Appends String argument to output JTextArea.
protected  void setUpIntegerEditor(javax.swing.JTable table)
          Code modified from Sun Microsystems website.
 boolean testCellsComplete(java.lang.Object[][] d)
          Checks each cell in table for incomplete cells.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isRootPaneCheckingEnabled, paramString, processKeyEvent, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, isResizable, remove, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle
 
Methods inherited from class java.awt.Window
addWindowListener, applyResourceBundle, applyResourceBundle, dispose, getFocusOwner, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, hide, isShowing, pack, postEvent, processEvent, removeWindowListener, setCursor, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFont, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, 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, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus
 
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

buttonPanel

protected javax.swing.JPanel buttonPanel

checkBox

protected javax.swing.JCheckBox[] checkBox
Array contains JCheckBoxes for selecting individual lines

clear

protected javax.swing.JButton clear
Activate JButton to clear all student input from table

colTitle

protected java.util.Vector colTitle
Defines column headers, and used extensively to set the size of the TableModel

columnNames

protected java.lang.String[] columnNames
Holds the headers for each column

contentPane

protected java.awt.Container contentPane
contentPane the exercise will be displayed on

data

protected java.lang.Object[][] data
Holds data displyed through the TableModel

diagram

protected circuitGraphics diagram
Object instantiates circuitGrpahics object.

gui

protected frameMaker gui
Object allows generation of JInternalFrames.

listener

protected TableUI.checkBoxListener listener
JCheckBox listener

marker

protected Checker marker
Checks answers and provides hints

middle

protected javax.swing.JPanel middle

myModel

protected TableUI.MyTableModel myModel
Holds and presents Truth Table data

nextCircuit

protected javax.swing.JButton nextCircuit
Activate JButton to generate next circuit

noOfOutPuts

protected int noOfOutPuts
Number of columns containing outputs

noOfRows

protected int noOfRows
Holds number of rows to be used with the TableModel

output

protected javax.swing.JTextArea output
JTextArea for displaying program output.

random

protected TTRandom random
Hold random numbers used to generate circuit.

submit

protected javax.swing.JButton submit
Activate JButton to submit student answers for checking

tableFrame

protected javax.swing.JInternalFrame tableFrame
Internal frame to display on Truth table.

truthTable

protected javax.swing.JPanel truthTable
Constructor Detail

TableUI

public TableUI(frameMaker g)
Requires a frameMaker object to allow creation of JInternalFrames
Method Detail

checkAnswers

public void checkAnswers()
Method to compare answers versus real. Each row is checked one row at a time. The results for each row are displayed through the Checker.calcAnswer() method. A JOptionPane provides a visible message to the user as to the overall results.

clearChkbox

protected void clearChkbox()
Sets all JCheckBoxes in GUI to de-selected. Used for each new table.

clearTxtArea

public void clearTxtArea()
Sets output JTextArea to new blank String ( "" )

createExercise

protected abstract void createExercise()
Creates JInternalFrames, mkTable and Checker objects.

getCellValue

public java.lang.String getCellValue(int row,
                                     int col)
Returns contents of specified table cell

makeDialog

public void makeDialog(java.lang.String title,
                       java.lang.String message,
                       int messageType,
                       int optionType)

mkButton

protected javax.swing.JButton mkButton(java.lang.String nm,
                                       java.awt.Container c)
Returns JButton at defined size (100,25) with actionListener included

mkChkButton

protected javax.swing.JCheckBox mkChkButton(java.awt.Container b,
                                            java.lang.String name,
                                            boolean checked)
Returns JCheckBox at defined size (120,20) with checkBoxListener included

mkConstraints

protected java.awt.GridBagConstraints mkConstraints(int gridX,
                                                    int gridY,
                                                    int fill,
                                                    int gridWidth,
                                                    int gridHeight,
                                                    double weightX,
                                                    double weightY,
                                                    int anchor,
                                                    int padX,
                                                    int padY)
All arguments are used to create a GridBagConstraints object.

mkLabel

protected javax.swing.JLabel mkLabel(java.lang.String nm,
                                     int style,
                                     int size)
Returns JLabel in arial Font, with programmer specifed Font style and size.

mkTextArea

protected javax.swing.JTextArea mkTextArea(int rows,
                                           int cols,
                                           boolean editable)
Returns JTextArea at defined size (rows x cols). User can choose if JTextArea is editable or not.

setCellValue

protected void setCellValue(java.lang.Object value,
                            int row,
                            int col,
                            java.lang.Object[][] a)
Set contents of the 2D array supplied as an argument to the object specified.

setTxtArea

public void setTxtArea(java.lang.String s)
Appends String argument to output JTextArea.

setUpIntegerEditor

protected void setUpIntegerEditor(javax.swing.JTable table)
Code modified from Sun Microsystems website. Ensures only String 0's or 1's are entered into table Strings must be used to allow the initial display for certain cells to be blank. Use of Integers requires an initial value of 0 to be displayed

testCellsComplete

public boolean testCellsComplete(java.lang.Object[][] d)
Checks each cell in table for incomplete cells. WholeNumberField prevents incorrect entries, only entries can be 0,1 or This method detects strings.