java.awt.event.ActionListener
, java.util.EventListener
, Renderable
InteractivePanel
public class DrawingPanel extends javax.swing.JPanel implements java.awt.event.ActionListener, Renderable
Modifier and Type | Class | Description |
---|---|---|
class |
DrawingPanel.ZoomBox |
ZoomBox creates an on-screen rectangle using XORMode for fast redrawing.
|
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
java.awt.Container.AccessibleAWTContainer
Modifier and Type | Field | Description |
---|---|---|
protected boolean |
adjustableGutter |
|
protected boolean |
antialiasShapeOn |
|
protected boolean |
antialiasTextOn |
|
protected javax.swing.JMenuItem |
autoscaleItem |
|
protected double |
autoscaleMargin |
|
protected boolean |
autoscaleX |
|
protected boolean |
autoscaleXMax |
|
protected boolean |
autoscaleXMin |
|
protected boolean |
autoscaleY |
|
protected boolean |
autoscaleYMax |
|
protected boolean |
autoscaleYMin |
|
protected java.awt.Color |
bgColor |
|
protected TextPanel |
blMessageBox |
|
static int |
BOTTOM_LEFT |
Message box location
|
static int |
BOTTOM_RIGHT |
Message box location
|
protected int |
bottomGutter |
|
protected int |
bottomGutterPreferred |
|
protected TextPanel |
brMessageBox |
|
protected boolean |
clipAtGutter |
|
protected CoordinateStringBuilder |
coordinateStrBuilder |
|
protected long |
currentTime |
|
protected java.awt.Window |
customInspector |
|
protected java.text.DecimalFormat |
decimalFormat |
|
protected Dimensioned |
dimensionSetter |
|
protected java.util.ArrayList<Drawable> |
drawableList |
|
protected double |
dxmax |
|
protected double |
dxmin |
|
protected double |
dymax |
|
protected double |
dymin |
|
protected boolean |
enableZoom |
|
protected boolean |
fixedPixelPerUnit |
|
protected boolean |
fixedScale |
|
protected org.opensourcephysics.display.DrawingPanel.GlassPanel |
glassPanel |
|
protected OSPLayout |
glassPanelLayout |
|
protected java.beans.PropertyChangeListener |
guiChangeListener |
|
protected int |
height |
|
protected double |
imageRatio |
|
protected int |
leftGutter |
|
protected int |
leftGutterPreferred |
|
protected boolean |
logScaleX |
|
protected boolean |
logScaleY |
|
protected javax.swing.event.MouseInputAdapter |
mouseController |
|
protected java.awt.image.BufferedImage |
offscreenImage |
|
protected javax.swing.event.MouseInputAdapter |
optionController |
|
protected double[] |
pixelMatrix |
|
protected java.awt.geom.AffineTransform |
pixelTransform |
|
protected javax.swing.JPopupMenu |
popupmenu |
|
protected javax.swing.JMenuItem |
propertiesItem |
|
protected static boolean |
RECORD_PAINT_TIMES |
|
protected int |
refreshDelay |
|
protected javax.swing.Timer |
refreshTimer |
|
protected int |
rightGutter |
|
protected int |
rightGutterPreferred |
|
protected javax.swing.JMenuItem |
scaleItem |
|
protected java.text.DecimalFormat |
scientificFormat |
|
protected boolean |
showCoordinates |
|
protected javax.swing.JMenuItem |
snapshotItem |
|
protected boolean |
squareAspect |
|
protected TextPanel |
tlMessageBox |
|
static int |
TOP_LEFT |
Message box location
|
static int |
TOP_RIGHT |
Message box location
|
protected int |
topGutter |
|
protected int |
topGutterPreferred |
|
protected TextPanel |
trMessageBox |
|
protected VideoTool |
vidCap |
|
protected java.awt.Rectangle |
viewRect |
|
protected int |
width |
|
protected java.awt.image.BufferedImage |
workingImage |
|
protected double |
xceil |
|
protected double |
xfloor |
|
protected double |
xLeftMarginPercentage |
|
protected double |
xmax |
|
protected double |
xmaxPreferred |
|
protected double |
xmin |
|
protected double |
xminPreferred |
|
protected double |
xPixPerUnit |
|
protected double |
xRightMarginPercentage |
|
protected double |
yBottomMarginPercentage |
|
protected double |
yceil |
|
protected double |
yfloor |
|
protected double |
ymax |
|
protected double |
ymaxPreferred |
|
protected double |
ymin |
|
protected double |
yminPreferred |
|
protected double |
yPixPerUnit |
|
protected double |
yTopMarginPercentage |
|
protected DrawingPanel.ZoomBox |
zoomBox |
|
protected int |
zoomCount |
|
protected int |
zoomDelay |
|
protected javax.swing.JMenuItem |
zoomInItem |
|
protected javax.swing.JMenuItem |
zoomOutItem |
|
protected javax.swing.Timer |
zoomTimer |
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Constructor | Description |
---|---|
DrawingPanel() |
DrawingPanel constructor.
|
Modifier and Type | Method | Description |
---|---|---|
void |
actionPerformed(java.awt.event.ActionEvent evt) |
Performs the action for the refresh timer by rendering (redrawing) the panel.
|
void |
addDrawable(Drawable drawable) |
Adds a drawable object to the drawable list.
|
void |
addDrawableAtIndex(int index,
Drawable drawable) |
Adds a drawable object to the drawable list at the given index.
|
void |
addDrawables(java.util.Collection<Drawable> drawables) |
Adds a collection of drawable objects to the drawable list.
|
void |
addOptionController() |
Removes the option controller.
|
protected void |
buildPopupmenu() |
Builds the default popup menu for this panel.
|
protected boolean |
checkWorkingImage() |
Checks the image to see if the working image has the correct Dimension.
|
void |
clear() |
Removes all drawable objects from the drawable list.
|
protected void |
computeGutters() |
Computes the size of the gutters.
|
void |
enableInspector(boolean isEnabled) |
Enables the popup inspector option.
|
protected java.awt.Rectangle |
findViewRect() |
Finds the clipping rectangle if this panel is within a scroll pane viewport.
|
double |
getAspectRatio() |
Gets the ratio of pixels per unit in the x and y directions.
|
int |
getBottomGutter() |
Gets the bottom gutter of this DrawingPanel.
|
CoordinateStringBuilder |
getCoordinateStringBuilder() |
Gets the CoordinateStringBuilder that converts mouse events into a string showing world coordinates.
|
Dimensioned |
getDimensionSetter() |
Gets the object that sets the gutters for this panel.
|
java.util.ArrayList<Drawable> |
getDrawables() |
Gets the cloned list of Drawable objects.
|
<T extends Drawable> |
getDrawables(java.lang.Class<T> type) |
Gets Drawable objects of an assignable type.
|
javax.swing.JPanel |
getGlassPanel() |
Gets the glass panel.
|
int[] |
getGutters() |
Gets the gutters.
|
int |
getHeight() |
|
double |
getImageRatio() |
Gets the ratio of the drawing image to the panel.
|
int |
getLeftGutter() |
Gets the left gutter of this DrawingPanel.
|
static XML.ObjectLoader |
getLoader() |
Returns an XML.ObjectLoader to save and load object data.
|
double |
getMaxPixPerUnit() |
Gets the larger of x or y pixels per world unit.
|
java.awt.geom.Rectangle2D |
getMeasure() |
Gets the rectangle that bounds all measurable objects.
|
<T extends Drawable> |
getObjectOfClass(java.lang.Class<T> type) |
Gets objects of a specific class from the drawables list.
|
double[] |
getPixelMatrix() |
Retrieves the 6 specifiable values in the pixel transformation
matrix and places them into an array of double precisions values.
|
java.awt.geom.AffineTransform |
getPixelTransform() |
Gets the affine transformation that converts from world to pixel coordinates.
|
javax.swing.JPopupMenu |
getPopupMenu() |
Gets the popup menu.
|
double |
getPreferredXMax() |
Gets the preferred x world coordinate for the right-hand side of the drawing area.
|
double |
getPreferredXMin() |
Gets the preferred x world coordinate for the left-hand side of the drawing area.
|
double |
getPreferredYMax() |
Gets the preferred y world coordinate for the top of the drawing area.
|
double |
getPreferredYMin() |
Gets the preferred y world coordinate for the bottom of the drawing area.
|
int |
getRightGutter() |
Gets the right gutter of this DrawingPanel.
|
java.awt.geom.Rectangle2D |
getScale() |
Gets the scale that will be used when the panel is drawn.
|
int |
getTopGutter() |
Gets the bottom gutter of this DrawingPanel.
|
VideoTool |
getVideoTool() |
Gets the video capture tool.
|
protected java.awt.Rectangle |
getViewRect() |
Gets the clipping rectangle within a scroll pane viewport.
|
int |
getWidth() |
|
double |
getXMax() |
Gets the x world coordinate for the right-hand side of the drawing area.
|
double |
getXMin() |
Gets the x world coordinate for the left-hand side of the drawing area.
|
double |
getXPixPerUnit() |
Gets the number of pixels per world unit in the x direction.
|
double |
getYMax() |
Gets the y world coordinate for the top of the drawing area.
|
double |
getYMin() |
Gets the y world coordinate for the bottom of the drawing area.
|
double |
getYPixPerUnit() |
Gets the number of pixels per world unit in the y direction.
|
DrawingPanel.ZoomBox |
getZoomBox() |
Returns the internal ZoomBox object
|
boolean |
hasInspector() |
Determines if the user can examine and change the scale at run-time by right-clicking.
|
void |
hideInspector() |
Hides the drawing panel properties inspector.
|
void |
invalidateImage() |
Invalidate the offscreen image so that it is rendered during the next repaint operation if buffering is enabled.
|
boolean |
isAdjustableGutter() |
Gets the adjustableGutter flag.
|
boolean |
isAntialiasShapeOn() |
Gets flag for shape antialiasing.
|
boolean |
isAntialiasTextOn() |
Gets flag for text antialiasing.
|
boolean |
isAutoscaleX() |
Determines if the x axis autoscale property is true.
|
boolean |
isAutoscaleXMax() |
Determines if the horizontal maximum value is autoscaled.
|
boolean |
isAutoscaleXMin() |
Determines if the horizontal minimum value is autoscaled.
|
boolean |
isAutoscaleY() |
Determines if the y axis autoscale property is true.
|
boolean |
isAutoscaleYMax() |
Determines if the vertical maximum value is autoscaled.
|
boolean |
isAutoscaleYMin() |
Determines if the vertical minimum value is autoscaled.
|
boolean |
isBuffered() |
|
boolean |
isClipAtGutter() |
Gets the clip at gutter flag.
|
boolean |
isFixedScale() |
Determines if the scale is fixed.
|
boolean |
isIconified() |
Gets the iconified flag from the top level frame.
|
boolean |
isLogScaleX() |
Gets the logScaleX value.
|
boolean |
isLogScaleY() |
Gets the logScaleY value.
|
boolean |
isPointInside(double x,
double y) |
Determines if the x and y point is inside.
|
boolean |
isSquareAspect() |
Determines if the number of pixels per unit is the same for both x and y.
|
protected boolean |
isValidImage() |
|
boolean |
isZoom() |
Determines if the user can change scale by dragging the mouse.
|
boolean |
isZoomEvent(java.awt.event.MouseEvent e) |
Returns true if an event starts or ends a zoom operation.
|
void |
limitAutoscaleX(double floor,
double ceil) |
Limits the xmin and xmax values during autoscaling so that the mininimum value
will be no greater than the floor and the maximum value will be no
smaller than the ceil.
|
void |
limitAutoscaleY(double floor,
double ceil) |
Limits ymin and ymax values during autoscaling so that the mininimum value
will be no greater than the floor and the maximum value will be no
smaller than the ceil.
|
void |
measure() |
Sets the scale based on the max and min values of all measurable objects.
|
void |
paint(java.awt.Graphics g) |
|
void |
paintComponent(java.awt.Graphics g) |
Paints this component.
|
protected void |
paintDrawableList(java.awt.Graphics g,
java.util.ArrayList<Drawable> tempList) |
Paints all the drawable objects in the panel.
|
protected void |
paintEverything(java.awt.Graphics g) |
Paints everything inside this component.
|
protected void |
paintFirst(java.awt.Graphics g) |
Paints before the panel iterates through its list of Drawables.
|
protected void |
paintLast(java.awt.Graphics g) |
Paints after the panel iterates through its list of Drawables.
|
double |
pixToX(int pix) |
Converts pixel to x world units.
|
double |
pixToY(int pix) |
Converts pixel to x world units.
|
double[] |
project(double[] coordinate,
double[] pixel) |
Projects a 2D or 3D world coordinate to a pixel coordinate.
|
void |
recomputeTransform() |
Recomputes the pixel transforamtion based on the current minimum and maximum values and the gutters.
|
protected void |
refreshDecimalSeparators() |
Refreshes the decimal separators.
|
protected void |
refreshGUI() |
Refreshes the user interface in response to display changes such as Language.
|
void |
removeDrawable(Drawable drawable) |
Removes a drawable object from the drawable list.
|
<T extends Drawable> |
removeDrawables(java.lang.Class<T> c) |
Removes all objects assignable to the given class from the drawable list.
|
<T extends Drawable> |
removeObjectsOfClass(java.lang.Class<T> c) |
Removes all objects of the given class from the drawable list.
|
void |
removeOptionController() |
Removes the option controller.
|
java.awt.image.BufferedImage |
render() |
Paints all drawables onto an offscreen image buffer and copies this image onto the screen.
|
java.awt.image.BufferedImage |
render(java.awt.image.BufferedImage image) |
Paints all drawables onto an image.
|
void |
replaceDrawable(Drawable oldDrawable,
Drawable newDrawable) |
Replaces a drawable object with another drawable.
|
void |
resetGutters() |
Resets the gutters to their preferred values.
|
void |
scale() |
Sets axis scales if autoscale is true using the max and min values of the measurable objects.
|
protected void |
scale(java.util.ArrayList<Drawable> tempList) |
Sets axis scales if autoscale is true using the max and min values of the objects in the given list.
|
protected void |
scaleX() |
Sets the x axis scale based on the max and min values of all measurable objects.
|
protected void |
scaleX(java.util.ArrayList<Drawable> tempList) |
Sets the x axis scale based on the max and/or min values of all measurable objects.
|
protected void |
scaleY() |
Sets the y axis scale based on the max and min values of all measurable objects.
|
protected void |
scaleY(java.util.ArrayList<Drawable> tempList) |
Sets the y axis scale based on the max and min values of all measurable objects.
|
void |
setAdjustableGutter(boolean adjustable) |
Sets adjustable gutters.
|
void |
setAntialiasShapeOn(boolean on) |
Set flag for shape antialiasing.
|
void |
setAntialiasTextOn(boolean on) |
Set flag for text antialiasing.
|
void |
setAutoscaleMargin(double _autoscaleMargin) |
Sets the size of the margin during an autoscale operation.
|
void |
setAutoscaleX(boolean autoscale) |
Autoscale the x axis using min and max values.
|
void |
setAutoscaleY(boolean autoscale) |
Autoscale the y axis using min and max values.
|
void |
setBounds(int x,
int y,
int width,
int height) |
Moves and resizes this component.
|
void |
setBounds(java.awt.Rectangle r) |
|
void |
setBuffered(boolean _buffered) |
Sets the buffered image option.
|
void |
setClipAtGutter(boolean clip) |
Sets the panel to exclude the gutter from the drawing.
|
void |
setCoordinateStringBuilder(CoordinateStringBuilder builder) |
Sets the CoordinateStringBuilder that converts mouse events into a string showing world coordinates.
|
void |
setCustomInspector(java.awt.Window w) |
Sets a custom properties inspector window.
|
void |
setFixedScale(boolean fixed) |
Sets the fixed scale property.
|
void |
setFontFactor(double factor) |
Sets the font factor.
|
protected void |
setFontLevel(int level) |
Sets the font level.
|
void |
setGutters(int[] gutters) |
Sets the gutters using the given array.
|
void |
setGutters(int left,
int top,
int right,
int bottom) |
Sets gutters around the drawing area.
|
void |
setIgnoreRepaint(boolean ignoreRepaint) |
|
void |
setMessage(java.lang.String msg) |
Shows a message in a yellow text box in the lower right hand corner.
|
void |
setMessage(java.lang.String msg,
int location) |
Shows a message in a yellow text box.
|
void |
setMouseCursor(java.awt.Cursor cursor) |
Sets the mouse cursor.
|
void |
setPixelScale() |
Calculates min and max values and the affine transformation based on the
current size of the panel and the squareAspect boolean.
|
void |
setPixelsPerUnit(boolean enable,
double xPixPerUnit,
double yPixPerUnit) |
Sets the scale using pixels per unit.
|
void |
setPopupMenu(javax.swing.JPopupMenu menu) |
Sets the popup menu.
|
void |
setPreferredGutters(int left,
int top,
int right,
int bottom) |
Sets preferred gutters around the drawing area.
|
void |
setPreferredMinMax(double xmin,
double xmax,
double ymin,
double ymax) |
Sets the preferred scale in the vertical and horizontal direction.
|
void |
setPreferredMinMax(double xmin,
double xmax,
double ymin,
double ymax,
boolean invalidateImage) |
Sets the preferred scale in the vertical and horizontal direction.
|
void |
setPreferredMinMaxX(double xmin,
double xmax) |
Sets the preferred scale in the horizontal direction.
|
void |
setPreferredMinMaxY(double ymin,
double ymax) |
Sets the preferred scale in the vertical direction.
|
void |
setShowCoordinates(boolean show) |
Show the coordinates in the text box in the lower left hand corner.
|
void |
setSquareAspect(boolean val) |
Sets the aspect ratio for horizontal to vertical to unity when
true<\code>. |
void |
setVideoTool(VideoTool videoCap) |
Sets the video tool.
|
void |
setVisible(boolean vis) |
Makes the component visible or invisible.
|
void |
setXLeftMarginPercentage(double _percentage) |
Sets the extra percentage on the X left margin during an autoscale operation.
|
void |
setXMarginPercentage(double _percentage) |
Sets the extra percentage on the X left and right margins during an autoscale operation.
|
void |
setXMarginPercentage(double _leftPercentage,
double _rightPercentage) |
Sets the extra percentage on the X left and right margins during an autoscale operation.
|
void |
setXRightMarginPercentage(double _percentage) |
Sets the extra percentage on the X left margin during an autoscale operation.
|
void |
setYBottomMarginPercentage(double _percentage) |
Sets the extra percentage on the X left margin during an autoscale operation.
|
void |
setYMarginPercentage(double _percentage) |
Sets the extra percentage on the Y top and bottom margin during an autoscale operation.
|
void |
setYMarginPercentage(double _bottomPercentage,
double _topPercentage) |
Sets the extra percentage on the Y top and bottom margin during an autoscale operation.
|
void |
setYTopMarginPercentage(double _percentage) |
Sets the extra percentage on the Y top margin during an autoscale operation.
|
void |
setZoom(boolean _enableZoom) |
Sets the zoom option to allow the user to change scale by dragging the mouse.
|
void |
showInspector() |
Shows the drawing panel properties inspector.
|
void |
snapshot() |
Creates a snapshot using an image of the content.
|
void |
validateImage() |
Validate the offscreen image to insure that the render method will execute.
|
float |
xToGraphics(double x) |
Converts x from world to graphics device units.
|
int |
xToPix(double x) |
Converts x from world to pixel units.
|
float |
yToGraphics(double y) |
Converts y from world to graphics device units.
|
int |
yToPix(double y) |
Converts y from world to pixel units.
|
protected void |
zoomIn() |
Zooms in to the current zoom box.
|
protected void |
zoomOut() |
Zooms out by a factor of two.
|
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
add, add, add, add, add, addContainerListener, addImpl, 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, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, 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, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, update
protected static final boolean RECORD_PAINT_TIMES
protected long currentTime
public static final int BOTTOM_LEFT
public static final int BOTTOM_RIGHT
public static final int TOP_RIGHT
public static final int TOP_LEFT
protected javax.swing.JPopupMenu popupmenu
protected javax.swing.JMenuItem propertiesItem
protected javax.swing.JMenuItem autoscaleItem
protected javax.swing.JMenuItem scaleItem
protected javax.swing.JMenuItem zoomInItem
protected javax.swing.JMenuItem zoomOutItem
protected javax.swing.JMenuItem snapshotItem
protected int leftGutter
protected int topGutter
protected int rightGutter
protected int bottomGutter
protected int leftGutterPreferred
protected int topGutterPreferred
protected int rightGutterPreferred
protected int bottomGutterPreferred
protected boolean clipAtGutter
protected boolean adjustableGutter
protected int width
protected int height
protected java.awt.Color bgColor
protected boolean antialiasTextOn
protected boolean antialiasShapeOn
protected boolean squareAspect
protected boolean autoscaleX
protected boolean autoscaleY
protected boolean autoscaleXMin
protected boolean autoscaleXMax
protected boolean autoscaleYMin
protected boolean autoscaleYMax
protected double autoscaleMargin
protected double xminPreferred
protected double xmaxPreferred
protected double yminPreferred
protected double ymaxPreferred
protected double xfloor
protected double xceil
protected double yfloor
protected double yceil
protected double xmin
protected double xmax
protected double ymin
protected double ymax
protected boolean fixedPixelPerUnit
protected double xPixPerUnit
protected double yPixPerUnit
protected java.awt.geom.AffineTransform pixelTransform
protected double[] pixelMatrix
protected java.util.ArrayList<Drawable> drawableList
protected java.awt.image.BufferedImage offscreenImage
protected java.awt.image.BufferedImage workingImage
protected TextPanel trMessageBox
protected TextPanel tlMessageBox
protected TextPanel brMessageBox
protected TextPanel blMessageBox
protected java.text.DecimalFormat scientificFormat
protected java.text.DecimalFormat decimalFormat
protected javax.swing.event.MouseInputAdapter mouseController
protected boolean showCoordinates
protected javax.swing.event.MouseInputAdapter optionController
protected DrawingPanel.ZoomBox zoomBox
protected boolean enableZoom
protected boolean fixedScale
protected java.awt.Window customInspector
protected Dimensioned dimensionSetter
protected java.awt.Rectangle viewRect
protected CoordinateStringBuilder coordinateStrBuilder
protected org.opensourcephysics.display.DrawingPanel.GlassPanel glassPanel
protected OSPLayout glassPanelLayout
protected int refreshDelay
protected javax.swing.Timer refreshTimer
protected VideoTool vidCap
protected double imageRatio
protected double xLeftMarginPercentage
protected double xRightMarginPercentage
protected double yTopMarginPercentage
protected double yBottomMarginPercentage
protected boolean logScaleX
protected boolean logScaleY
protected int zoomDelay
protected int zoomCount
protected javax.swing.Timer zoomTimer
protected double dxmin
protected double dxmax
protected double dymin
protected double dymax
protected java.beans.PropertyChangeListener guiChangeListener
protected void refreshGUI()
protected void refreshDecimalSeparators()
protected void setFontLevel(int level)
level
- the levelpublic void setFontFactor(double factor)
factor
- the factorprotected void buildPopupmenu()
public void setAutoscaleMargin(double _autoscaleMargin)
_autoscaleMargin
- public void setXMarginPercentage(double _percentage)
_percentage
- public void setXMarginPercentage(double _leftPercentage, double _rightPercentage)
_percentage
- public void setXLeftMarginPercentage(double _percentage)
_percentage
- public void setXRightMarginPercentage(double _percentage)
_percentage
- public void setYMarginPercentage(double _percentage)
_percentage
- public void setYMarginPercentage(double _bottomPercentage, double _topPercentage)
_percentage
- public void setYTopMarginPercentage(double _percentage)
_percentage
- public void setYBottomMarginPercentage(double _percentage)
_percentage
- public void setClipAtGutter(boolean clip)
clip
- true<\code> to clip; false<\code> otherwise
public boolean isClipAtGutter()
true<\code> if drawing is clipped at the gutter; false<\code> otherwise
public void setAdjustableGutter(boolean adjustable)
fixed
- true<\code> if gutters remain constant
public boolean isAdjustableGutter()
true<\code> if gutters are adjustable
public void setMouseCursor(java.awt.Cursor cursor)
cursor
- protected boolean checkWorkingImage()
true <\code> if the offscreen image matches the panel; false <\code> otherwise
public void actionPerformed(java.awt.event.ActionEvent evt)
actionPerformed
in interface java.awt.event.ActionListener
evt
- public boolean isIconified()
public java.awt.image.BufferedImage render()
render
in interface Renderable
public java.awt.image.BufferedImage render(java.awt.image.BufferedImage image)
render
in interface Renderable
image
- public int getWidth()
getWidth
in class javax.swing.JComponent
public int getHeight()
getHeight
in class javax.swing.JComponent
public double getImageRatio()
public void invalidateImage()
public void validateImage()
protected boolean isValidImage()
public void paint(java.awt.Graphics g)
paint
in class javax.swing.JComponent
public void paintComponent(java.awt.Graphics g)
paintComponent
in class javax.swing.JComponent
g
- protected java.awt.Rectangle getViewRect()
protected java.awt.Rectangle findViewRect()
protected void computeGutters()
protected void paintFirst(java.awt.Graphics g)
g
- Graphicsprotected void paintLast(java.awt.Graphics g)
g
- Graphicsprotected void paintEverything(java.awt.Graphics g)
g
- public void setAutoscaleX(boolean autoscale)
autoscale
- public boolean isAutoscaleX()
true<\code> if autoscaled.
public boolean isAutoscaleXMax()
true<\code> if xmax is autoscaled.
public boolean isAutoscaleXMin()
true<\code> if xmin is autoscaled.
public void setAutoscaleY(boolean autoscale)
autoscale
- public boolean isAutoscaleY()
true<\code> if autoscaled.
public boolean isAutoscaleYMax()
true<\code> if ymax is autoscaled.
public boolean isAutoscaleYMin()
true<\code> if ymin is autoscaled.
public boolean isLogScaleX()
public boolean isLogScaleY()
public void setBounds(int x, int y, int width, int height)
x
and y
, and the
new size is specified by width
and height
.setBounds
in class java.awt.Component
x
- The new x-coordinate of this component.y
- The new y-coordinate of this component.width
- The new width
of this component.height
- The new height
of this
component.public void setBounds(java.awt.Rectangle r)
setBounds
in class java.awt.Component
public void setBuffered(boolean _buffered)
_buffered
- public boolean isBuffered()
public void setVisible(boolean vis)
JComponent.setVisible
.setVisible
in class javax.swing.JComponent
vis
- true to make the component visible; false to
make it invisiblepublic void limitAutoscaleX(double floor, double ceil)
Double.NaN<\code> will disable that limit.
floor
- the xfloor valueceil
- the xceil valuepublic void limitAutoscaleY(double floor, double ceil)
Double.NaN<\code> will disable that limit.
floor
- the yfloor valueceil
- the yceil valuepublic void setPixelsPerUnit(boolean enable, double xPixPerUnit, double yPixPerUnit)
enable
- boolean enable fixed pixels per unitxPixPerUnit
- doubleyPixPerUnit
- doublepublic void setPreferredMinMax(double xmin, double xmax, double ymin, double ymax, boolean invalidateImage)
xmin
- xmax
- ymin
- ymax
- invalidateImage
- invalidates image if min/max have changedpublic void setPreferredMinMax(double xmin, double xmax, double ymin, double ymax)
xmin
- xmax
- ymin
- ymax
- public void setPreferredMinMaxX(double xmin, double xmax)
xmin
- the minimum valuexmax
- the maximum valuepublic void setPreferredMinMaxY(double ymin, double ymax)
ymin
- ymax
- public void setSquareAspect(boolean val)
true<\code>.
val
- public boolean isSquareAspect()
true<\code> if squareAspect
public void setAntialiasTextOn(boolean on)
public boolean isAntialiasTextOn()
public void setAntialiasShapeOn(boolean on)
public boolean isAntialiasShapeOn()
public boolean isPointInside(double x, double y)
x
- the coordinate in world unitsy
- the coordinate in world unitstrue<\code> if point is inside; false<\code> otherwise
public boolean isFixedScale()
true<\code> if scale is fixed
public void setFixedScale(boolean fixed)
fixed
- true<\code> to prevent user changes to scale
public boolean isZoom()
true<\code> if zoom is enabled and scale is not fixed
public void setZoom(boolean _enableZoom)
_enableZoom
- true<\code> if zoom is enabled
protected void zoomOut()
public DrawingPanel.ZoomBox getZoomBox()
protected void zoomIn()
public void snapshot()
public boolean hasInspector()
true<\code> if inspector is enabled
public void enableInspector(boolean isEnabled)
isEnabled
- true<\code> if the inspector option is enabled; false<\code> otherwise
public javax.swing.JPopupMenu getPopupMenu()
public void setPopupMenu(javax.swing.JPopupMenu menu)
public void showInspector()
public void hideInspector()
public void setCustomInspector(java.awt.Window w)
w
- the new inspector windowpublic void setVideoTool(VideoTool videoCap)
videoCap
- the video capture toolpublic VideoTool getVideoTool()
public double getAspectRatio()
public double getXPixPerUnit()
public double getYPixPerUnit()
public double getMaxPixPerUnit()
public double getXMin()
public double getPreferredXMin()
public double getXMax()
public double getPreferredXMax()
public double getYMax()
public double getPreferredYMax()
public double getYMin()
public double getPreferredYMin()
public CoordinateStringBuilder getCoordinateStringBuilder()
public void setCoordinateStringBuilder(CoordinateStringBuilder builder)
public java.awt.geom.Rectangle2D getScale()
public java.awt.geom.Rectangle2D getMeasure()
public java.awt.geom.AffineTransform getPixelTransform()
public double[] getPixelMatrix()
public void setPixelScale()
public void recomputeTransform()
public double[] project(double[] coordinate, double[] pixel)
coordinate
- pixel
- public double pixToX(int pix)
pix
- public int xToPix(double x)
x
- public float xToGraphics(double x)
x
- public double pixToY(int pix)
pix
- public int yToPix(double y)
y
- public float yToGraphics(double y)
y
- public void scale()
protected void scale(java.util.ArrayList<Drawable> tempList)
public void measure()
protected void scaleX()
protected void scaleX(java.util.ArrayList<Drawable> tempList)
protected void scaleY()
protected void scaleY(java.util.ArrayList<Drawable> tempList)
protected void paintDrawableList(java.awt.Graphics g, java.util.ArrayList<Drawable> tempList)
g
- public javax.swing.JPanel getGlassPanel()
public void setIgnoreRepaint(boolean ignoreRepaint)
setIgnoreRepaint
in class java.awt.Component
public Dimensioned getDimensionSetter()
public void addDrawable(Drawable drawable)
drawable
- public void addDrawables(java.util.Collection<Drawable> drawables)
drawables
- public void addDrawableAtIndex(int index, Drawable drawable)
drawable
- public void replaceDrawable(Drawable oldDrawable, Drawable newDrawable)
oldDrawable
- DrawablenewDrawable
- Drawablepublic void removeDrawable(Drawable drawable)
drawable
- public <T extends Drawable> void removeObjectsOfClass(java.lang.Class<T> c)
c
- the classremoveDrawables(Class c)
public <T extends Drawable> void removeDrawables(java.lang.Class<T> c)
c
- the classremoveObjectsOfClass(Class c)
public void removeOptionController()
public void addOptionController()
public void clear()
public java.util.ArrayList<Drawable> getDrawables()
public <T extends Drawable> java.util.ArrayList<T> getDrawables(java.lang.Class<T> type)
type
- the type of Drawable objectgetObjectOfClass(Class c)
public <T extends Drawable> java.util.ArrayList<T> getObjectOfClass(java.lang.Class<T> type)
type
- the class of the objectgetDrawables(Class c)
public int[] getGutters()
public void setGutters(int[] gutters)
gutters
- int[]public void setGutters(int left, int top, int right, int bottom)
left
- top
- right
- bottom
- public void setPreferredGutters(int left, int top, int right, int bottom)
left
- top
- right
- bottom
- public void resetGutters()
public int getBottomGutter()
public int getTopGutter()
public int getLeftGutter()
public int getRightGutter()
public void setMessage(java.lang.String msg)
msg
- public void setMessage(java.lang.String msg, int location)
msg
- location
- public void setShowCoordinates(boolean show)
show
- public boolean isZoomEvent(java.awt.event.MouseEvent e)
e
- a mouse eventpublic static XML.ObjectLoader getLoader()