net.sourceforge.webcompmath.applets
Class FunctionComposition

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 net.sourceforge.webcompmath.applets.GenericGraphApplet
                          extended by net.sourceforge.webcompmath.applets.FunctionComposition
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.event.ItemListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer

public class FunctionComposition
extends GenericGraphApplet
implements java.awt.event.ActionListener, java.awt.event.ItemListener

A Function composation applet displays the graphs of two functions, f(x) and g(x), and their coposition, g(f(x)). It marks points (x,f(x)), (f(x),g(f(x)), and (x,g(f(x))) on the respective graphs. The user controls the value of x by dragging a red square along the x-axis of the first graph. The functions f and g can be given as table functions instead of expressions. The user controls this by clicking on check boxes. When a table function is displayed, the user can modify it by dragging its points. Optionally, the apple can also display tangent lines to the graphs. The slopes of the tangent line are supposed to illustrate the chain rule. Note: This inherits from GenericGraphApplet, but a lot of code in that applet is superceded here. In particular, there is no possibility of having a limit control panel.

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 net.sourceforge.webcompmath.applets.GenericGraphApplet
canvas, computeButton, defaultFrameSize, exampleMenuPanel, fontSize, frameTitle, functionInput, ggBGColor, ggFGColor, inputPanel, lbf, limitsPanel, mainController, mainPanel, parameterDefaults, parser, pBGColor, presentation, xVar
 
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
FunctionComposition()
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent evt)
          Respond when the user clicks one of the control buttons.
protected  void doLoadExample(java.lang.String example)
          This method is called when the user loads an example from the example menu (if there is one).
 void itemStateChanged(java.awt.event.ItemEvent evt)
          Respond when user clicks one of the check boxes.
 void setUpMainPanel()
          Set up the applet.
 
Methods inherited from class net.sourceforge.webcompmath.applets.GenericGraphApplet
addCanvasBorder, destroy, doLoadFirstExample, getColorParam, getColorParam, getNumericParam, getNumericParam, getParameter, getParameter, init, makeAxes, parseTableFuncDef, setUpBottomPanel, setUpCanvas, setUpExampleMenu, setUpLimitsPanel, setUpParameterDefaults, setUpParser, setUpTopPanel
 
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
getAppletContext, getAppletInfo, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameterInfo, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus, start, stop
 
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
 

Constructor Detail

FunctionComposition

public FunctionComposition()
Method Detail

setUpMainPanel

public void setUpMainPanel()
Set up the applet.

Overrides:
setUpMainPanel in class GenericGraphApplet

itemStateChanged

public void itemStateChanged(java.awt.event.ItemEvent evt)
Respond when user clicks one of the check boxes.

Specified by:
itemStateChanged in interface java.awt.event.ItemListener
Overrides:
itemStateChanged in class GenericGraphApplet
Parameters:
evt - event indicating user clicked a box

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent evt)
Respond when the user clicks one of the control buttons.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Overrides:
actionPerformed in class GenericGraphApplet
Parameters:
evt - event sent when user clicks a button

doLoadExample

protected void doLoadExample(java.lang.String example)
This method is called when the user loads an example from the example menu (if there is one). It overrides an empty method in GenericGraphApplet. The example string should contain two function definitions, separated by a semicolon. A function definition can be either an expression or a table function. These espressions can be followed by a semicolon and four or five numberd. The first four numbers give the x- and y-limits to be used for the example. If they are not present, then -5,5,-5,5 is used. The next number is used as the x-coordinated that is selected on the graph of the first function.

Overrides:
doLoadExample in class GenericGraphApplet
Parameters:
example - the function to be graphed