ch.aplu.util
Class GPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by ch.aplu.util.GPane
All Implemented Interfaces:
java.awt.event.FocusListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.print.Printable, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class GPane
extends javax.swing.JPanel
implements java.awt.event.FocusListener, java.awt.print.Printable

Simple graphics window of similar to GPanel to be used as component in a top-level window (JFrame, JDialog, Browswer window, etc.) using a coordinate system with x-axis from left to right, y-axis from bottom to top (called window coordinates, default range 0..1, 0..1). The drawing methods perform all drawings in an offscreen buffer and automatically repaint it on the screen, so the graphics is shown step-by-step.

A current graph position is used, that remembers the end position of the last drawing process and where new drawings start.

Because its offscreen buffer will be created at the moment when the GPane is displayed, all graphics drawing operations will be blocked until then. You should check with isReady()) before invoking drawing methods. (A GPanelNotReadyException is thrown after a blocking timeout of 30 sec)

GPane is derived from JPanel and can only be used by adding an instance to another top-level window. Unlike GPanel where the constructors and all public methods run in the Event Dispatch Thread, with GPane it is your responsiblity to invoke Swing methods in the EDT.

See Also:
GPanel, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.BaselineResizeBehavior
 
Field Summary
 java.awt.Color backgroundColor
          Property for bean support.
 boolean enableFocus
           
 java.awt.Color penColor
          Property for bean support.
 double xmax
          Property for bean support.
 double xmin
          Property for bean support.
 double ymax
          Property for bean support.
 double ymin
          Property for bean support.
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
GPane()
          Create a GPane to be used as embedded graphics component with default size 100x100 pixels.
GPane(Size size)
          Create a GPane to be used as embedded graphics component with given size.
GPane(Size size, boolean embedded)
          Create a GPane with given size.
 
Method Summary
 void applyTransform(java.awt.geom.AffineTransform at)
          Apply the given AffineTransform to offscreen buffer.
 void arc(double radius, double startAngle, double extendAngle)
          Draw an arc with center at the current graph position and given radius in window coordinates.
 java.awt.Color bgColor(java.awt.Color color)
          Set the background color.
 void circle(double radius)
          Draw a circle with center at the current graph position and given radius in horizontal window coordinates.
 void clear()
          Clear the graphics window (fully paint with background color) (and the offscreen buffer used by the window).
 void clearStore(java.awt.Color color)
          Clear store buffer by uniformly painting it with with given color.
 java.awt.Color color(java.awt.Color color)
          Same as setColor() (deprecated).
 void cubicBezier(double x1, double y1, double xc1, double yc1, double xc2, double yc2, double x2, double y2)
          Draw a cubic bezier curve.
 void cubicBezier(java.awt.geom.Point2D.Double pt1, java.awt.geom.Point2D.Double ptc1, java.awt.geom.Point2D.Double ptc2, java.awt.geom.Point2D.Double pt2)
          Draw a cubic bezier curve.
static void delay(int time)
          Delay execution for the given amount of time ( in ms ).
 void dispose()
          Release all used system resources (offscreen buffer, graphics context) and unblock getKeyWait() and getKeyCodeWait() and waiting Monitor.putSleep().
 void draw(double x, double y)
          Draw a line from current graph position to given window coordinates and set the graph position to the endpoint.
 void draw(java.awt.geom.Point2D.Double pt)
          Draw a line from current graph position to given point (in window coordinates) and set the graph position to the endpoint.
 void ellipse(double a, double b)
          Draw an ellipse with center at the current graph position and given horizontal and vertical axes.
 boolean enableRepaint(boolean doRepaint)
          Enable or disable the automatic repaint in graphics methods.
 void erase()
          Same as clear() but let the current graph position unchanged.
 void fill(double x, double y, java.awt.Color color, java.awt.Color replacement)
          Change the color of the bounded region with the given internal point to the replacement color using the flood fill algorithm.
 void fill(java.awt.geom.Point2D.Double pt, java.awt.Color color, java.awt.Color replacement)
          Change the color of the bounded region with the given internal point to the replacement color using the flood fill algorithm.
 void fillArc(double radius, int startAngle, int extendAngle)
          Draw a filled arc with center at the current graph position and given radius in window coordinates.
 void fillCircle(double radius)
          Draw a filled circle with center at the current graph position and given radius in window coordinates using the current color.
 void fillEllipse(double a, double b)
          Draw a filled ellipse with center at the current graph position and given horizontal and vertical axes.
 void fillGeneralPath(java.awt.geom.GeneralPath gp)
          Fill a figure defined by the given GeneralPath (using window coordinates) using the current color.
 void fillPolygon(double[] x, double[] y)
          Draw a filled polygon with given corner coordinates in window coordinates using the current color.
 void fillPolygon(java.awt.geom.Point2D.Double[] corner)
          Draw a filled polygon with given corner points in window coordinates using the current color.
 void fillRectangle(double width, double height)
          Draw a filled rectangle with center at the current graph position and given width and height in window coordinates using the current color.
 void fillRectangle(double x1, double y1, double x2, double y2)
          Draw a filled rectangle with given opposite corners in window coordinates using the current color.
 void fillRectangle(java.awt.geom.Point2D.Double pt1, java.awt.geom.Point2D.Double pt2)
          Draw a filled rectangle with given opposite corner points in window coordinates using the current color.
 void fillTriangle(double x1, double y1, double x2, double y2, double x3, double y3)
          Draw a filled triangle with given corner coordinates in window coordinates using the current color.
 void fillTriangle(java.awt.geom.Point2D.Double pt1, java.awt.geom.Point2D.Double pt2, java.awt.geom.Point2D.Double pt3)
          Draw a filled triangle with given corners in window coordinates using the current color.
 void focusGained(java.awt.event.FocusEvent evt)
          Essentially for internal use only.
 void focusLost(java.awt.event.FocusEvent evt)
          Essentially for internal use only.
 void font(java.awt.Font font)
          Select the given font for all following text operations.
 void generalPath(java.awt.geom.GeneralPath gp)
          Draw a figure defined by the given GeneralPath (using window coordinates).
 java.lang.String getAbout()
          Return copywrite information
 java.awt.Color getBackgroundColor()
          Return the color of the background
 java.awt.Color getBgColor()
          Return the current background color.
 boolean getEnableFocus()
          Return true, if the focus is enabled; otherwise false.
 java.awt.Graphics2D getOffG2D()
          Return the Graphics2D context of the offscreen buffer
 java.awt.Color getPenColor()
          Return the color of the pen.
 java.awt.Color getPixelColor(double x, double y)
          Return the color of the pixel at given window coordinates.
 java.awt.Color getPixelColor(java.awt.geom.Point2D.Double pt)
          Return the color of the pixel at given point (in window coordinates).
 java.awt.geom.Point2D.Double getPos()
          Return reference to point of current graph position (in window coordinates).
 double getPosX()
          Return window coordinate x of current graph position.
 double getPosY()
          Return window coordinate y of current graph position.
 java.lang.String getVersion()
          Return version information
 GWindow getWindow()
          Return a reference to the GWindow used by the GPane.
 double getXmax()
          Return the xmax range value.
 double getXmin()
          Return the ymin range value.
 double getYmax()
          Return the ymax range value.
 double getYmin()
          Return the ymin range value.
 boolean image(java.awt.image.BufferedImage bi, double x, double y)
          Show the GIF image from given BufferedImage at x, y window coordinates (specifies lowerleft corner of image).
 boolean image(java.awt.image.BufferedImage bi, java.awt.geom.Point2D.Double pt)
          Show the GIF image from given BufferedImage at given point(in window coordinates) (specifies lowerleft corner of image).
 boolean image(java.lang.String imagePath, double x, double y)
          Show the GIF image from given file path at x, y window coordinates (specifies lowerleft corner of image).
 boolean image(java.lang.String imagePath, java.awt.geom.Point2D.Double pt)
          Show the GIF image from given file path at given point(in window coordinates) (specifies lowerleft corner of image).
 double imageHeight(java.lang.String imagePath)
          Return the height (vertical size) of the GIF image from the given path (in window coordinates).
 double imageWidth(java.lang.String imagePath)
          Return the width (horizontal size) of the GIF image from the given path (in window coordinates).
 boolean isReady()
          Test if GPane is fully initialized.
 void line(double x1, double y1, double x2, double y2)
          Draws a line with given window coordinates and set the graph position to the endpoint.
 void line(java.awt.geom.Point2D.Double pt1, java.awt.geom.Point2D.Double pt2)
          Draws a line with given points (in window coordinates) and set the graph position to the endpoint.
 void lineWidth(int width)
          Set the current line width in pixels.
 void move(double x, double y)
          Set the current graph position to given window coordinates (without drawing anything).
 void move(int x, int y)
          Same as move(double x, double y)
 void move(java.awt.geom.Point2D.Double pt)
          Set the current graph position to given point (in window coordinates) (without drawing anything).
 void paintComponent(java.awt.Graphics g)
          For internal use only.
 void point(double x, double y)
          Draw a single point at the given window coordinates.
 void point(java.awt.geom.Point2D.Double pt)
          Draw a single point at the given pt (in window coordinates).
 void polygon(double[] x, double[] y)
          Draw a polygon with given corner coordinates in window coordinates.
 void polygon(java.awt.geom.Point2D.Double[] corner)
          Draw a polygon with given corner points in window coordinates.
 void pos(double x, double y)
          Same as move(double x, double y).
 void pos(java.awt.geom.Point2D.Double pt)
          Same as move(Point2D.Double pt).
 boolean print(GPrintable gp)
          Same as print(GPrintable gp, double scale) with scale = 1.
 boolean print(GPrintable gp, double scale)
          Print the graphics context to an attached printer with the given magnification scale factor.
 int print(java.awt.Graphics g, java.awt.print.PageFormat pf, int pageIndex)
          For internal use only.
 boolean printScreen()
          Same printScreen(double scale) with scale = 1.
 boolean printScreen(double scale)
          Print the current screen view to an attached printer with the given magnification scale factor.
 void quadraticBezier(double x1, double y1, double xc, double yc, double x2, double y2)
          Draw a quadratic bezier curve.
 void quadraticBezier(java.awt.geom.Point2D.Double pt1, java.awt.geom.Point2D.Double ptc, java.awt.geom.Point2D.Double pt2)
          Draw a quadratic bezier curve.
 void recallGraphics()
          Copy graphics from store buffer to offscreen buffer and render it on the screen window (if enableRepaint(true)).
 void rectangle(double width, double height)
          Draw a rectangle with center at the current graph position and given width and height in window coordinates.
 void rectangle(double x1, double y1, double x2, double y2)
          Draw a rectangle with given opposite corners in window coordinates.
 void rectangle(java.awt.geom.Point2D.Double pt1, java.awt.geom.Point2D.Double pt2)
          Draw a rectangle with given opposite corner points in window coordinates.
 void repaint()
          Override JPanel's repaint() to inhibit explicit repainting while printing.
 void repaint(int x, int y, int width, int height)
          Override JPanel's repaint(int x, int y, int width, int height) to inhibit explicit repainting while printing.
 void setBackgroundColor(java.awt.Color value)
          Set the color of the background.
 java.awt.Color setColor(java.awt.Color color)
          Set the given new color and return the previous color
 void setEnableFocus(boolean enable)
          Enable/disable the focus.
 void setEnableResize(boolean enable)
          Enable/disable resizing.
 void setPaintMode()
          Set the paint mode of the graphics context to overwrite with current color.
 void setPenColor(java.awt.Color value)
          Set the color of the pen.
 void setXmax(double value)
          Set the xmax range value.
 void setXmin(double value)
          Set the xmin range value.
 void setXORMode(java.awt.Color c)
          Sets the paint mode to alternate between the current color and the given color.
 void setYmax(double value)
          Set the xmax range value.
 void setYmin(double value)
          Set the ymin range value.
 void storeGraphics()
          Create a store buffer and copy current graphics to it.
 void text(char c)
          Draw a char at the current graph position.
 void text(double x, double y, char c)
          Draw a char at the given position.
 void text(double x, double y, java.lang.String str)
          Draw a string at the given x-y position.
 void text(double x, double y, java.lang.String str, java.awt.Font font, java.awt.Color textColor, java.awt.Color bgColor)
          Draw a string at the given position with extended text attributes.
 void text(java.awt.geom.Point2D.Double pt, char c)
          Draw a char at the given position.
 void text(java.awt.geom.Point2D.Double pt, java.lang.String str)
          Draw a string at the given position.
 void text(java.awt.geom.Point2D.Double pt, java.lang.String str, java.awt.Font font, java.awt.Color textColor, java.awt.Color bgColor)
          Draw a string at the given position with extended text attributes.
 void text(java.lang.String str)
          Draw a string at the current graph position.
 void title(java.lang.String title)
          Set the title in the window's title bar.
 java.awt.Point toUser(double windowX, double windowY)
          Return reference to point in user coordinate of given window coordinates.
 java.awt.Point toUser(java.awt.geom.Point2D.Double windowPt)
          Return reference to point in user coordinate of given point in window coordinate.
 int toUserHeight(double windowHeight)
          Return user coordinates increment y of given window coordinates increment y.
 int toUserWidth(double windowWidth)
          Return user coordinates increment x of given window coordinates increment x.
 int toUserX(double windowX)
          Return user coordinate x of given window coordinate x.
 int toUserY(double windowY)
          Return user coordinate y of given window coordinate y.
 java.awt.geom.Point2D.Double toWindow(int userX, int userY)
          Return reference to point in window coordinates of given user coordinates.
 java.awt.geom.Point2D.Double toWindow(java.awt.Point userPt)
          Return reference to point in window coordinates of given point in user coordinates.
 double toWindowHeight(int userHeight)
          Return window coordinates increment y of given user coordinates increment y.
 double toWindowWidth(int userWidth)
          Return window coordinates increment x of given user coordinates increment x.
 double toWindowX(int userX)
          Return window coordinate x of given user coordinate x.
 double toWindowY(int userY)
          Return window coordinate y of given user coordinate y.
 void triangle(double x1, double y1, double x2, double y2, double x3, double y3)
          Draw a triangle with given corner coordinates in window coordinates.
 void triangle(java.awt.geom.Point2D.Double pt1, java.awt.geom.Point2D.Double pt2, java.awt.geom.Point2D.Double pt3)
          Draw a triangle with given corners in window coordinates.
 void visible(boolean isVisible)
          Select if GPane's window is visible or not.
 void window(double xmin, double xmax, double ymin, double ymax)
          Set window coordinates.
 void windowSize(int width, int height)
          Set the size of the entire window (including title bar and borders) in device coordinates.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

backgroundColor

public java.awt.Color backgroundColor
Property for bean support.


penColor

public java.awt.Color penColor
Property for bean support.


xmin

public double xmin
Property for bean support.


xmax

public double xmax
Property for bean support.


ymin

public double ymin
Property for bean support.


ymax

public double ymax
Property for bean support.


enableFocus

public boolean enableFocus
Constructor Detail

GPane

public GPane()
Create a GPane to be used as embedded graphics component with default size 100x100 pixels. Parameterless bean constructor.


GPane

public GPane(Size size)
Create a GPane to be used as embedded graphics component with given size.


GPane

public GPane(Size size,
             boolean embedded)
Create a GPane with given size. If embedded = true, an embedded graphics component is created; if false, the graphics window has its own frame (like a GPanel).

Method Detail

window

public void window(double xmin,
                   double xmax,
                   double ymin,
                   double ymax)
Set window coordinates. left_x, right_x, bottom_y, top_y


visible

public void visible(boolean isVisible)
Select if GPane's window is visible or not. (You may draw into an invisible GPane and show it afterwards.)


getWindow

public GWindow getWindow()
Return a reference to the GWindow used by the GPane. Can be used to access the surrounding JFrame because GWindow is derived from JFrame.


repaint

public void repaint()
Override JPanel's repaint() to inhibit explicit repainting while printing.

Overrides:
repaint in class java.awt.Component

repaint

public void repaint(int x,
                    int y,
                    int width,
                    int height)
Override JPanel's repaint(int x, int y, int width, int height) to inhibit explicit repainting while printing.

Overrides:
repaint in class java.awt.Component

isReady

public boolean isReady()
Test if GPane is fully initialized. Only used for GPane.EMBEDDED.
(If GPane is embedded in an other component, any graphics drawing operation must be postponed until the parent component is shown because the GPane's size is only known at this time.)
Because yield() is called, it can be used in a narrow loop.


print

public boolean print(GPrintable gp,
                     double scale)
Print the graphics context to an attached printer with the given magnification scale factor. scale = 1 will print on standard A4 format paper. The given gp must implement the GPrintable interface, e.g. the single method void draw(), where all the drawing into the GPane must occur. A standard printer dialog is shown before printing is started.
Return false, if printing is canceled in this dialog, return true, when print data is sent to the printer spooler. (On some platforms the Java Virtual Machine crashes when changing the printer in this dialog. Use the default printer)
Example:

import ch.aplu.util.*;

public class PrintEx extends GPane implements GPrintable
{
  public PrintEx()
  {
    draw(); // Draw on screen
    print(this); // Draw on printer
  }

  public void draw()
  {
    move(0, 0);
    draw(1, 0);
    draw(1, 1);
    draw(0, 1);
    draw(0, 0);

    line(0, 1, 1, 0);
    line(0, 0, 1, 1);
  }

  public static void main(String[] args)
  {
    new PrintEx();
  }
}


print

public boolean print(GPrintable gp)
Same as print(GPrintable gp, double scale) with scale = 1.


printScreen

public boolean printScreen(double scale)
Print the current screen view to an attached printer with the given magnification scale factor. A standard printer dialog is shown before printing is started.
Return false, if printing is canceled in this dialog, return true, when print data is sent to the printer spooler.


printScreen

public boolean printScreen()
Same printScreen(double scale) with scale = 1.


bgColor

public java.awt.Color bgColor(java.awt.Color color)
Set the background color. All drawing are erased. Ignores the alpha channel. Return the previous color.


getBgColor

public java.awt.Color getBgColor()
Return the current background color.


title

public void title(java.lang.String title)
Set the title in the window's title bar.


toUserX

public int toUserX(double windowX)
Return user coordinate x of given window coordinate x.


toUserY

public int toUserY(double windowY)
Return user coordinate y of given window coordinate y.


toUser

public java.awt.Point toUser(java.awt.geom.Point2D.Double windowPt)
Return reference to point in user coordinate of given point in window coordinate.


toUser

public java.awt.Point toUser(double windowX,
                             double windowY)
Return reference to point in user coordinate of given window coordinates.


toUserWidth

public int toUserWidth(double windowWidth)
Return user coordinates increment x of given window coordinates increment x. Increment is always positive.


toUserHeight

public int toUserHeight(double windowHeight)
Return user coordinates increment y of given window coordinates increment y. Increment is always positive.


toWindowX

public double toWindowX(int userX)
Return window coordinate x of given user coordinate x.


toWindowY

public double toWindowY(int userY)
Return window coordinate y of given user coordinate y.


toWindow

public java.awt.geom.Point2D.Double toWindow(java.awt.Point userPt)
Return reference to point in window coordinates of given point in user coordinates.


toWindow

public java.awt.geom.Point2D.Double toWindow(int userX,
                                             int userY)
Return reference to point in window coordinates of given user coordinates.


toWindowWidth

public double toWindowWidth(int userWidth)
Return window coordinates increment x of given user coordinates increment x. Increment is always positive.


toWindowHeight

public double toWindowHeight(int userHeight)
Return window coordinates increment y of given user coordinates increment y. Increment is always positive.


lineWidth

public void lineWidth(int width)
Set the current line width in pixels.


color

public java.awt.Color color(java.awt.Color color)
Same as setColor() (deprecated).


setColor

public java.awt.Color setColor(java.awt.Color color)
Set the given new color and return the previous color


line

public void line(double x1,
                 double y1,
                 double x2,
                 double y2)
Draws a line with given window coordinates and set the graph position to the endpoint.


line

public void line(java.awt.geom.Point2D.Double pt1,
                 java.awt.geom.Point2D.Double pt2)
Draws a line with given points (in window coordinates) and set the graph position to the endpoint.


draw

public void draw(double x,
                 double y)
Draw a line from current graph position to given window coordinates and set the graph position to the endpoint.


draw

public void draw(java.awt.geom.Point2D.Double pt)
Draw a line from current graph position to given point (in window coordinates) and set the graph position to the endpoint.


move

public void move(double x,
                 double y)
Set the current graph position to given window coordinates (without drawing anything).


move

public void move(int x,
                 int y)
Same as move(double x, double y). ( Override java.component.move(int x, int y) )

Overrides:
move in class java.awt.Component

pos

public void pos(double x,
                double y)
Same as move(double x, double y).


move

public void move(java.awt.geom.Point2D.Double pt)
Set the current graph position to given point (in window coordinates) (without drawing anything).


pos

public void pos(java.awt.geom.Point2D.Double pt)
Same as move(Point2D.Double pt).


getPosX

public double getPosX()
Return window coordinate x of current graph position.


getPosY

public double getPosY()
Return window coordinate y of current graph position.


getPos

public java.awt.geom.Point2D.Double getPos()
Return reference to point of current graph position (in window coordinates).


clear

public void clear()
Clear the graphics window (fully paint with background color) (and the offscreen buffer used by the window). Set the current graph position to (0, 0).
If enableRepaint(false) only clear the offscreen buffer.


erase

public void erase()
Same as clear() but let the current graph position unchanged.


circle

public void circle(double radius)
Draw a circle with center at the current graph position and given radius in horizontal window coordinates. The graph position is unchanged.


fillCircle

public void fillCircle(double radius)
Draw a filled circle with center at the current graph position and given radius in window coordinates using the current color. The graph position is unchanged.


ellipse

public void ellipse(double a,
                    double b)
Draw an ellipse with center at the current graph position and given horizontal and vertical axes. The graph position is unchanged.


fillEllipse

public void fillEllipse(double a,
                        double b)
Draw a filled ellipse with center at the current graph position and given horizontal and vertical axes. The graph position is unchanged.


rectangle

public void rectangle(double width,
                      double height)
Draw a rectangle with center at the current graph position and given width and height in window coordinates. The graph position is unchanged.


rectangle

public void rectangle(double x1,
                      double y1,
                      double x2,
                      double y2)
Draw a rectangle with given opposite corners in window coordinates. The graph position is unchanged.


rectangle

public void rectangle(java.awt.geom.Point2D.Double pt1,
                      java.awt.geom.Point2D.Double pt2)
Draw a rectangle with given opposite corner points in window coordinates. The graph position is unchanged.


fillRectangle

public void fillRectangle(double width,
                          double height)
Draw a filled rectangle with center at the current graph position and given width and height in window coordinates using the current color. The graph position is unchanged.


fillRectangle

public void fillRectangle(double x1,
                          double y1,
                          double x2,
                          double y2)
Draw a filled rectangle with given opposite corners in window coordinates using the current color. The graph position is unchanged.


fillRectangle

public void fillRectangle(java.awt.geom.Point2D.Double pt1,
                          java.awt.geom.Point2D.Double pt2)
Draw a filled rectangle with given opposite corner points in window coordinates using the current color. The graph position is unchanged.


arc

public void arc(double radius,
                double startAngle,
                double extendAngle)
Draw an arc with center at the current graph position and given radius in window coordinates. Start angle and extend angle in degrees (zero to east, positive counterclockwise). The graph position is unchanged.


fillArc

public void fillArc(double radius,
                    int startAngle,
                    int extendAngle)
Draw a filled arc with center at the current graph position and given radius in window coordinates. Start angle and extend angle in degrees (zero to east, positive counterclockwise). The graph position is unchanged.


polygon

public void polygon(double[] x,
                    double[] y)
Draw a polygon with given corner coordinates in window coordinates. (Both arrays must be of equal size.) The graph position is unchanged.


polygon

public void polygon(java.awt.geom.Point2D.Double[] corner)
Draw a polygon with given corner points in window coordinates. The graph position is unchanged.


fillPolygon

public void fillPolygon(double[] x,
                        double[] y)
Draw a filled polygon with given corner coordinates in window coordinates using the current color. (Both arrays must be of equal size.) The graph position is unchanged.


fillPolygon

public void fillPolygon(java.awt.geom.Point2D.Double[] corner)
Draw a filled polygon with given corner points in window coordinates using the current color. The graph position is unchanged.


quadraticBezier

public void quadraticBezier(java.awt.geom.Point2D.Double pt1,
                            java.awt.geom.Point2D.Double ptc,
                            java.awt.geom.Point2D.Double pt2)
Draw a quadratic bezier curve. A quadratic bezier curve is a Bezier curve of degree 2 and is defined by 3 points: pt1, pt2, ptc (control point). The curve first endpoint is pt1, the second endpoint is pt2. The line ptc-pt1 is the tangent of the curve in point pt1. The line ptc-pt2 is the tangent of the curve in point pt2. The graph position is unchanged.


quadraticBezier

public void quadraticBezier(double x1,
                            double y1,
                            double xc,
                            double yc,
                            double x2,
                            double y2)
Draw a quadratic bezier curve. A quadratic bezier curve is a Bezier curve of degree 2 and is defined by 3 points: pt1, pt2, ptc (control point). The curve first endpoint is pt1, the second endpoint is pt2. The line ptc-pt1 is the tangent of the curve in point pt1. The line ptc-pt2 is the tangent of the curve in point pt2. The graph position is unchanged.


cubicBezier

public void cubicBezier(java.awt.geom.Point2D.Double pt1,
                        java.awt.geom.Point2D.Double ptc1,
                        java.awt.geom.Point2D.Double ptc2,
                        java.awt.geom.Point2D.Double pt2)
Draw a cubic bezier curve. A cubic bezier curve is a Bezier curve of degree 3 and is defined by 4 points: pt1, pt2, and the control points ptc1, ptc2. The curve first endpoint is pt1, the second endpoint is pt2. The line ptc1-pt1 is the tangent of the curve in point pt1. The line ptc2-pt2 is the tangent of the curve in point pt2. The graph position is unchanged.


cubicBezier

public void cubicBezier(double x1,
                        double y1,
                        double xc1,
                        double yc1,
                        double xc2,
                        double yc2,
                        double x2,
                        double y2)
Draw a cubic bezier curve. A cubic bezier curve is a Bezier curve of degree 3 and is defined by 4 points: pt1, pt2, and the control points ptc1, ptc2. The curve first endpoint is pt1, the second endpoint is pt2. The line ptc1-pt1 is the tangent of the curve in point pt1. The line ptc2-pt2 is the tangent of the curve in point pt2. The graph position is unchanged.


triangle

public void triangle(double x1,
                     double y1,
                     double x2,
                     double y2,
                     double x3,
                     double y3)
Draw a triangle with given corner coordinates in window coordinates. The graph position is unchanged.


triangle

public void triangle(java.awt.geom.Point2D.Double pt1,
                     java.awt.geom.Point2D.Double pt2,
                     java.awt.geom.Point2D.Double pt3)
Draw a triangle with given corners in window coordinates. The graph position is unchanged.


fillTriangle

public void fillTriangle(double x1,
                         double y1,
                         double x2,
                         double y2,
                         double x3,
                         double y3)
Draw a filled triangle with given corner coordinates in window coordinates using the current color. The graph position is unchanged.


fillTriangle

public void fillTriangle(java.awt.geom.Point2D.Double pt1,
                         java.awt.geom.Point2D.Double pt2,
                         java.awt.geom.Point2D.Double pt3)
Draw a filled triangle with given corners in window coordinates using the current color. The graph position is unchanged.


generalPath

public void generalPath(java.awt.geom.GeneralPath gp)
Draw a figure defined by the given GeneralPath (using window coordinates). The graph position is unchanged.


fillGeneralPath

public void fillGeneralPath(java.awt.geom.GeneralPath gp)
Fill a figure defined by the given GeneralPath (using window coordinates) using the current color. The graph position is unchanged.


text

public void text(java.lang.String str)
Draw a string at the current graph position. The graph position is unchanged.


text

public void text(char c)
Draw a char at the current graph position. The graph position is unchanged.


text

public void text(double x,
                 double y,
                 java.lang.String str)
Draw a string at the given x-y position. The graph position is unchanged.


text

public void text(java.awt.geom.Point2D.Double pt,
                 java.lang.String str)
Draw a string at the given position. The graph position is unchanged.


text

public void text(double x,
                 double y,
                 char c)
Draw a char at the given position. The graph position is unchanged.


text

public void text(java.awt.geom.Point2D.Double pt,
                 char c)
Draw a char at the given position. The graph position is unchanged.


text

public void text(double x,
                 double y,
                 java.lang.String str,
                 java.awt.Font font,
                 java.awt.Color textColor,
                 java.awt.Color bgColor)
Draw a string at the given position with extended text attributes. The graph position is unchanged.


text

public void text(java.awt.geom.Point2D.Double pt,
                 java.lang.String str,
                 java.awt.Font font,
                 java.awt.Color textColor,
                 java.awt.Color bgColor)
Draw a string at the given position with extended text attributes. The graph position is unchanged.


font

public void font(java.awt.Font font)
Select the given font for all following text operations.


point

public void point(double x,
                  double y)
Draw a single point at the given window coordinates. The graph position is set to the given point.


point

public void point(java.awt.geom.Point2D.Double pt)
Draw a single point at the given pt (in window coordinates). The graph position is set to the given point.


fill

public void fill(java.awt.geom.Point2D.Double pt,
                 java.awt.Color color,
                 java.awt.Color replacement)
Change the color of the bounded region with the given internal point to the replacement color using the flood fill algorithm.


fill

public void fill(double x,
                 double y,
                 java.awt.Color color,
                 java.awt.Color replacement)
Change the color of the bounded region with the given internal point to the replacement color using the flood fill algorithm.


image

public boolean image(java.lang.String imagePath,
                     double x,
                     double y)
Show the GIF image from given file path at x, y window coordinates (specifies lowerleft corner of image).

From the given filename the image file is searched in the following order:
- if application is packed into a jar archive, relative to the root of the jar archive
- relative or absolute to current application directory
- if filename starts with http://, from the given URL
- if imagePath prefixed with _ relative to the root of the jar archive
Return true if successful. If enableRepaint(false), the image is drawn in offscreen buffer only.


image

public boolean image(java.lang.String imagePath,
                     java.awt.geom.Point2D.Double pt)
Show the GIF image from given file path at given point(in window coordinates) (specifies lowerleft corner of image).

From the given filename the image file is searched in the following order:
- if application is packed into a jar archive, relative to the root of the jar archive
- relative or absolute to current application directory
- if filename starts with http://, from the given URL
- if imagePath prefixed with _ relative to the root of the jar archive
Return true if successful. If enableRepaint(false), the image is drawn in offscreen buffer only.


image

public boolean image(java.awt.image.BufferedImage bi,
                     double x,
                     double y)
Show the GIF image from given BufferedImage at x, y window coordinates (specifies lowerleft corner of image). Return true if successful. If enableRepaint(false), the image is drawn in offscreen buffer only.


image

public boolean image(java.awt.image.BufferedImage bi,
                     java.awt.geom.Point2D.Double pt)
Show the GIF image from given BufferedImage at given point(in window coordinates) (specifies lowerleft corner of image). Return true if successful. If enableRepaint(false), the image is drawn in offscreen buffer only.


imageWidth

public double imageWidth(java.lang.String imagePath)
Return the width (horizontal size) of the GIF image from the given path (in window coordinates). Return 0, if GIF image is invalid.


imageHeight

public double imageHeight(java.lang.String imagePath)
Return the height (vertical size) of the GIF image from the given path (in window coordinates). Return 0, if GIF image is invalid.


applyTransform

public void applyTransform(java.awt.geom.AffineTransform at)
Apply the given AffineTransform to offscreen buffer.


enableRepaint

public boolean enableRepaint(boolean doRepaint)
Enable or disable the automatic repaint in graphics methods. Return the current state of repainting.
When automatic repaint is disabled, the method repaint() must be called to show the image on the screen.
Useful to avoid flickering while animating an image. If repainting is disabled clear() will only erase the offscreen buffer and not the screen. repaint() should be called after drawing the new situation in order to copy the offscreen buffer to the screen.
While printing, repainting is disabled.


setPaintMode

public void setPaintMode()
Set the paint mode of the graphics context to overwrite with current color.


setXORMode

public void setXORMode(java.awt.Color c)
Sets the paint mode to alternate between the current color and the given color. This specifies that logical pixel operations are performed in the XOR mode, which alternates pixels between the current color and a specified XOR color. When drawing operations are performed, pixels which are the current color are changed to the specified color, and vice versa. Pixels that are of colors other than those two colors are changed in an unpredictable but reversible manner; if the same figure is drawn twice, then all pixels are restored to their original values.


getOffG2D

public java.awt.Graphics2D getOffG2D()
Return the Graphics2D context of the offscreen buffer


dispose

public void dispose()
Release all used system resources (offscreen buffer, graphics context) and unblock getKeyWait() and getKeyCodeWait() and waiting Monitor.putSleep(). After calling, don't use the GPane instance anymore.


storeGraphics

public void storeGraphics()
Create a store buffer and copy current graphics to it.

See Also:
recallGraphics(), clearStore(java.awt.Color)

recallGraphics

public void recallGraphics()
Copy graphics from store buffer to offscreen buffer and render it on the screen window (if enableRepaint(true)).

See Also:
storeGraphics(), clearStore(java.awt.Color)

clearStore

public void clearStore(java.awt.Color color)
Clear store buffer by uniformly painting it with with given color.

See Also:
storeGraphics(), recallGraphics()

getVersion

public java.lang.String getVersion()
Return version information


getAbout

public java.lang.String getAbout()
Return copywrite information


focusGained

public void focusGained(java.awt.event.FocusEvent evt)
Essentially for internal use only. You may override this method to get your own notification, when the focus is gained.

Specified by:
focusGained in interface java.awt.event.FocusListener

focusLost

public void focusLost(java.awt.event.FocusEvent evt)
Essentially for internal use only. You may override this method to get your own notification, when the focus is lost. (Do not override for mode = APPLETFRAME).

Specified by:
focusLost in interface java.awt.event.FocusListener

windowSize

public void windowSize(int width,
                       int height)
Set the size of the entire window (including title bar and borders) in device coordinates.

The window coordinates are unchanged.

Due to rescaling some graphics resolution is lost. To avoid this, use size parameters when instantiating the GPanel.


paintComponent

public void paintComponent(java.awt.Graphics g)
For internal use only.

Overrides:
paintComponent in class javax.swing.JComponent

print

public int print(java.awt.Graphics g,
                 java.awt.print.PageFormat pf,
                 int pageIndex)
For internal use only.

Specified by:
print in interface java.awt.print.Printable

getPixelColor

public java.awt.Color getPixelColor(double x,
                                    double y)
Return the color of the pixel at given window coordinates.


getPixelColor

public java.awt.Color getPixelColor(java.awt.geom.Point2D.Double pt)
Return the color of the pixel at given point (in window coordinates).


setBackgroundColor

public void setBackgroundColor(java.awt.Color value)
Set the color of the background.


getBackgroundColor

public java.awt.Color getBackgroundColor()
Return the color of the background


setPenColor

public void setPenColor(java.awt.Color value)
Set the color of the pen.


getPenColor

public java.awt.Color getPenColor()
Return the color of the pen.


setXmin

public void setXmin(double value)
Set the xmin range value.


getXmin

public double getXmin()
Return the ymin range value.


setXmax

public void setXmax(double value)
Set the xmax range value.


getXmax

public double getXmax()
Return the xmax range value.


setYmin

public void setYmin(double value)
Set the ymin range value.


getYmin

public double getYmin()
Return the ymin range value.


setYmax

public void setYmax(double value)
Set the xmax range value.


getYmax

public double getYmax()
Return the ymax range value.


setEnableFocus

public void setEnableFocus(boolean enable)
Enable/disable the focus.


getEnableFocus

public boolean getEnableFocus()
Return true, if the focus is enabled; otherwise false.


setEnableResize

public void setEnableResize(boolean enable)
Enable/disable resizing.


delay

public static void delay(int time)
Delay execution for the given amount of time ( in ms ).