public class TurtleField extends javax.swing.JFrame implements TurtleListener, Context
Modifier and Type | Class and Description |
---|---|
class |
TurtleField.BufferedPanel
Overkill with double buffering on by default, but shows how to do it.
|
class |
TurtleField.DrawingPanel |
javax.swing.JFrame.AccessibleJFrame
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
Modifier and Type | Field and Description |
---|---|
private javax.swing.JTextArea |
firstWorkspace |
private javax.swing.JPanel |
infoPanel |
private javax.swing.JTextField |
myAngle |
private TurtleField.DrawingPanel |
myDisplay |
private java.awt.Font |
myFont |
private javax.swing.JTextField |
myPenInfo |
private javax.swing.JComboBox<java.lang.String> |
myPreviousCommands |
private javax.swing.JComboBox<java.lang.String> |
myStepSize |
JTurtle |
myTurtle |
private static javax.swing.JTextArea |
myTurtleOutput |
private javax.swing.JTextField |
myXPoint |
private javax.swing.JTextField |
myYPoint |
private java.lang.String[] |
previousCommands |
private static long |
serialVersionUID |
private static java.util.Map<java.lang.String,Variable> |
varNameToVariable |
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
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
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Constructor and Description |
---|
TurtleField()
Creates a view of the turtle, using the default turtle representation
|
TurtleField(java.lang.String turtleImgLocName)
Creates a view of the turtle, given by the name of the turtle image
|
Modifier and Type | Method and Description |
---|---|
void |
chooseCommand()
Replaces the text in the workspace field with the chosen command in the
combo box
|
void |
chooseFile()
Allows the user to run a program from a slogo file
|
void |
doJob()
Pass a string reader of the text in the workspace onto the interpreter
Also passes the command entered into the combo box of previously entered
commands
|
void |
doSteps()
Make the turtle take some steps.
|
int |
getMoveSize()
Returns step size as currently selected.
|
java.lang.Object |
getTurtle() |
private void |
init() |
static void |
main(java.lang.String[] args) |
private void |
makeDashBoard(javax.swing.JPanel panel)
Where turtle info is displayed
|
static java.awt.Image |
makeImage(java.lang.String imageFileName) |
private void |
makeSlider(javax.swing.JPanel panel)
make a slider to set the turtle's heading
|
private javax.swing.JTextArea |
makeTextArea() |
private javax.swing.JTextField |
makeTextField() |
private void |
makeUserWorkspace(javax.swing.JPanel panel)
Where user can enter commands interactively to the turtle
|
void |
printVariables()
This method prints out the currently defined variables into the
TurtleOutput text are
|
void |
processTurtle(JTurtle turtle)
Process a (changed) turtle, display properties and redraw.
|
private static void |
redirectSystemStreams()
Redirects the system output stream from the console to the myTurtleOutput text area
|
void |
saveFile()
Allows the user to save a program to a slogo file
https://www.mkyong.com/java/how-to-write-to-file-in-java-bufferedwriter-example/
|
void |
setOutputText(java.lang.String text)
Sets the output text to the desired output, clearing it before doing so
|
void |
setTurtle(JTurtle turtle) |
void |
showAngle(int angle)
Display (Turtle's) angle
|
void |
showPoint(java.awt.geom.Point2D d)
display Turtle's point information
|
void |
toggleInfoPanel() |
private static void |
updateTextArea(java.lang.String text)
This collection of methods redirects the regular console stream to the
output box so the user can see it.
|
java.lang.Object |
value(java.lang.String name)
If there are local/global variables, a variable might have a different
value depending on the Context, so Contexts should support determining
the value of an identifier.
|
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, 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, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
private static final long serialVersionUID
private TurtleField.DrawingPanel myDisplay
private javax.swing.JPanel infoPanel
private javax.swing.JTextField myXPoint
private javax.swing.JTextField myYPoint
private javax.swing.JTextField myAngle
private javax.swing.JTextField myPenInfo
private static javax.swing.JTextArea myTurtleOutput
private javax.swing.JTextArea firstWorkspace
private javax.swing.JComboBox<java.lang.String> myStepSize
private javax.swing.JComboBox<java.lang.String> myPreviousCommands
private java.lang.String[] previousCommands
private java.awt.Font myFont
private static java.util.Map<java.lang.String,Variable> varNameToVariable
public JTurtle myTurtle
public TurtleField(java.lang.String turtleImgLocName)
turtleImgName
- - the location of the turtle image filepublic TurtleField()
public static void main(java.lang.String[] args)
public java.lang.Object value(java.lang.String name)
Context
private void init()
public void setTurtle(JTurtle turtle)
public java.lang.Object getTurtle()
private void makeSlider(javax.swing.JPanel panel)
private javax.swing.JTextField makeTextField()
private void makeDashBoard(javax.swing.JPanel panel)
private javax.swing.JTextArea makeTextArea()
private void makeUserWorkspace(javax.swing.JPanel panel)
public void doJob()
integer
- which enter button was pressedpublic void setOutputText(java.lang.String text)
text
- public void printVariables()
public void chooseCommand()
public void chooseFile()
public void saveFile()
public void toggleInfoPanel()
public void processTurtle(JTurtle turtle)
processTurtle
in interface TurtleListener
turtle
- is the turtle being displayedpublic void showPoint(java.awt.geom.Point2D d)
public void showAngle(int angle)
angle
- is the angle displayedprivate static void updateTextArea(java.lang.String text)
text
- private static void redirectSystemStreams()
public void doSteps()
public int getMoveSize()
public static java.awt.Image makeImage(java.lang.String imageFileName) throws java.io.IOException
imageFileName
- java.io.IOException
- if there is an error reading in the file