- java.lang.Object
-
- java.awt.Component
-
- java.awt.Canvas
-
- ij.gui.ImageCanvas
-
- All Implemented Interfaces:
java.awt.event.MouseListener
,java.awt.event.MouseMotionListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,java.lang.Cloneable
,java.util.EventListener
,javax.accessibility.Accessible
- Direct Known Subclasses:
PlotCanvas
public class ImageCanvas extends java.awt.Canvas implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.lang.Cloneable
This is a Canvas used to display images in a Window.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.awt.Cursor
crosshairCursor
protected static java.awt.Cursor
defaultCursor
protected int
dstHeight
protected int
dstWidth
protected int
flags
protected static java.awt.Cursor
handCursor
protected ImageJ
ij
protected int
imageHeight
protected boolean
imageUpdated
protected int
imageWidth
protected ImagePlus
imp
protected int
lastZoomSX
Screen coordinates where the last zoom operation was done (initialized to impossible value)protected int
lastZoomSY
protected double
magnification
protected static int
MAX_MOUSEMOVE_ZOOM
If the mouse moves less than this in screen pixels, successive zoom operations are on the same image pixelprotected static java.awt.Cursor
moveCursor
protected java.awt.Rectangle
srcRect
static boolean
usePointer
protected int
xMouse
protected int
xMouseStart
protected int
xSrcStart
protected int
yMouse
protected int
yMouseStart
protected int
ySrcStart
protected int
zoomTargetOX
Image (=offscreen) coordinates where the cursor was moved to for zoomingprotected int
zoomTargetOY
-
Constructor Summary
Constructors Constructor Description ImageCanvas(ImagePlus imp)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected java.awt.Dimension
canEnlarge(int newWidth, int newHeight)
Returns the size to which the window can be enlarged, or null if it can't be enlarged.boolean
cursorOverImage()
Returns 'true' if the cursor is over this image.void
disablePopupMenu(boolean status)
Disable/enable popup menu.void
fitToWindow()
java.awt.Point
getCursorLoc()
Returns the current cursor location in image coordinates.boolean
getCustomRoi()
java.util.Vector
getDisplayList()
Deprecated.replaced by ImagePlus.getOverlay()static double
getHigherZoomLevel(double currentMag)
ImagePlus
getImage()
Returns the ImagePlus object that is associated with this ImageCanvas.static double
getLowerZoomLevel(double currentMag)
double
getMagnification()
int
getModifiers()
Returns the mouse event modifiers.Overlay
getOverlay()
Use ImagePlus.getOverlay().boolean
getPaintPending()
java.awt.Dimension
getPreferredSize()
boolean
getScaleToFit()
static java.awt.Color
getShowAllColor()
ObsoleteOverlay
getShowAllList()
boolean
getShowAllROIs()
Obsoleteint
getSliceNumber(java.lang.String label)
java.awt.Rectangle
getSrcRect()
protected void
handlePopupMenu(java.awt.event.MouseEvent e)
protected void
handleRoiMouseDown(java.awt.event.MouseEvent e)
boolean
hideZoomIndicator(boolean hide)
void
mouseClicked(java.awt.event.MouseEvent e)
void
mouseDragged(java.awt.event.MouseEvent e)
void
mouseEntered(java.awt.event.MouseEvent e)
void
mouseExited(java.awt.event.MouseEvent e)
void
mouseMoved(java.awt.event.MouseEvent e)
void
mousePressed(java.awt.event.MouseEvent e)
void
mouseReleased(java.awt.event.MouseEvent e)
int
offScreenX(int sx)
Converts a screen x-coordinate to an offscreen x-coordinate (nearest pixel center).int
offScreenX2(int sx)
Converts a screen x-coordinate to an offscreen x-coordinate (Roi coordinate of nearest pixel border).double
offScreenXD(int sx)
Converts a screen x-coordinate to a floating-point offscreen x-coordinate.int
offScreenY(int sy)
Converts a screen y-coordinate to an offscreen y-coordinate (nearest pixel center).int
offScreenY2(int sy)
Converts a screen y-coordinate to an offscreen y-coordinate (Roi coordinate of nearest pixel border).double
offScreenYD(int sy)
Converts a screen y-coordinate to a floating-point offscreen y-coordinate.void
paint(java.awt.Graphics g)
void
repaintOverlay()
void
resetDoubleBuffer()
boolean
roiManagerSelect(Roi roi, boolean delete)
int
screenX(int ox)
Converts an offscreen x-coordinate to a screen x-coordinate.int
screenXD(double ox)
Converts a floating-point offscreen x-coordinate to a screen x-coordinate.int
screenY(int oy)
Converts an offscreen y-coordinate to a screen y-coordinate.int
screenYD(double oy)
Converts a floating-point offscreen x-coordinate to a screen x-coordinate.protected void
scroll(int sx, int sy)
void
setCursor(int sx, int sy, int ox, int oy)
Sets the cursor based on the current tool and cursor location.static void
setCursor(java.awt.Cursor cursor, int type)
Experimentalvoid
setCustomRoi(boolean customRoi)
Allows plugins (e.g., Orthogonal_Views) to create a custom ROI using a display list.void
setDisplayList(Roi roi, java.awt.Color color)
Deprecated.replaced by ImagePlus.setOverlay(Roi, Color, int, Color)void
setDisplayList(java.awt.Shape shape, java.awt.Color color, java.awt.BasicStroke stroke)
Deprecated.replaced by ImagePlus.setOverlay(Shape, Color, BasicStroke)void
setDisplayList(java.util.Vector list)
Deprecated.replaced by ImagePlus.setOverlay(ij.gui.Overlay)void
setDrawingColor(int ox, int oy, boolean setBackground)
Sets the foreground drawing color (or background color if 'setBackground' is true) to the color of the pixel at (ox,oy).void
setDrawingSize(int width, int height)
Obsolete; replaced by setSize()void
setImageUpdated()
ImagePlus.updateAndDraw calls this method to force the paint() method to update the image from the ImageProcessor.static void
setLongClickDelay(int delay)
Sets the context menu long click delay in milliseconds (default is 1000).void
setMagnification(double magnification)
void
setOverlay(Overlay overlay)
Use ImagePlus.setOverlay(ij.gui.Overlay).void
setPaintPending(boolean state)
void
setScaleToFit(boolean scaleToFit)
static void
setShowAllColor(java.awt.Color c)
Obsoletevoid
setShowAllList(Overlay showAllList)
void
setShowAllROIs(boolean showAllROIs)
Obsoletevoid
setShowCursorStatus(boolean status)
Called by IJ.showStatus() to prevent status bar text from being overwritten until the cursor moves at least 12 pixels.void
setSize(int width, int height)
void
setSourceRect(java.awt.Rectangle r)
Sets the region of the image (in pixels) to be displayed.protected void
setupScroll(int ox, int oy)
void
unzoom()
Implements the Image/Zoom/Original Scale command.void
update(java.awt.Graphics g)
void
zoom100Percent()
Implements the Image/Zoom/View 100% command.void
zoomIn(int sx, int sy)
Zooms in by making the window bigger.void
zoomOut(int sx, int sy)
Zooms out by making the source rectangle (srcRect) larger and centering it on (x,y).-
Methods inherited from class java.awt.Canvas
addNotify, createBufferStrategy, createBufferStrategy, getAccessibleContext, getBufferStrategy
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, revalidate, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setMixingCutoutShape, setName, setPreferredSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
-
-
-
-
Field Detail
-
defaultCursor
protected static java.awt.Cursor defaultCursor
-
handCursor
protected static java.awt.Cursor handCursor
-
moveCursor
protected static java.awt.Cursor moveCursor
-
crosshairCursor
protected static java.awt.Cursor crosshairCursor
-
usePointer
public static boolean usePointer
-
imp
protected ImagePlus imp
-
imageUpdated
protected boolean imageUpdated
-
srcRect
protected java.awt.Rectangle srcRect
-
imageWidth
protected int imageWidth
-
imageHeight
protected int imageHeight
-
xMouse
protected int xMouse
-
yMouse
protected int yMouse
-
MAX_MOUSEMOVE_ZOOM
protected static final int MAX_MOUSEMOVE_ZOOM
If the mouse moves less than this in screen pixels, successive zoom operations are on the same image pixel- See Also:
- Constant Field Values
-
lastZoomSX
protected int lastZoomSX
Screen coordinates where the last zoom operation was done (initialized to impossible value)
-
lastZoomSY
protected int lastZoomSY
-
zoomTargetOX
protected int zoomTargetOX
Image (=offscreen) coordinates where the cursor was moved to for zooming
-
zoomTargetOY
protected int zoomTargetOY
-
ij
protected ImageJ ij
-
magnification
protected double magnification
-
dstWidth
protected int dstWidth
-
dstHeight
protected int dstHeight
-
xMouseStart
protected int xMouseStart
-
yMouseStart
protected int yMouseStart
-
xSrcStart
protected int xSrcStart
-
ySrcStart
protected int ySrcStart
-
flags
protected int flags
-
-
Constructor Detail
-
ImageCanvas
public ImageCanvas(ImagePlus imp)
-
-
Method Detail
-
setSourceRect
public void setSourceRect(java.awt.Rectangle r)
Sets the region of the image (in pixels) to be displayed.
-
getSrcRect
public java.awt.Rectangle getSrcRect()
-
setDrawingSize
public void setDrawingSize(int width, int height)
Obsolete; replaced by setSize()
-
setSize
public void setSize(int width, int height)
- Overrides:
setSize
in classjava.awt.Component
-
setImageUpdated
public void setImageUpdated()
ImagePlus.updateAndDraw calls this method to force the paint() method to update the image from the ImageProcessor.
-
setPaintPending
public void setPaintPending(boolean state)
-
getPaintPending
public boolean getPaintPending()
-
update
public void update(java.awt.Graphics g)
- Overrides:
update
in classjava.awt.Canvas
-
paint
public void paint(java.awt.Graphics g)
- Overrides:
paint
in classjava.awt.Canvas
-
getSliceNumber
public int getSliceNumber(java.lang.String label)
-
resetDoubleBuffer
public void resetDoubleBuffer()
-
getPreferredSize
public java.awt.Dimension getPreferredSize()
- Overrides:
getPreferredSize
in classjava.awt.Component
-
getCursorLoc
public java.awt.Point getCursorLoc()
Returns the current cursor location in image coordinates.
-
cursorOverImage
public boolean cursorOverImage()
Returns 'true' if the cursor is over this image.
-
getModifiers
public int getModifiers()
Returns the mouse event modifiers.
-
getImage
public ImagePlus getImage()
Returns the ImagePlus object that is associated with this ImageCanvas.
-
setCursor
public void setCursor(int sx, int sy, int ox, int oy)
Sets the cursor based on the current tool and cursor location.
-
offScreenX
public int offScreenX(int sx)
Converts a screen x-coordinate to an offscreen x-coordinate (nearest pixel center).
-
offScreenY
public int offScreenY(int sy)
Converts a screen y-coordinate to an offscreen y-coordinate (nearest pixel center).
-
offScreenX2
public int offScreenX2(int sx)
Converts a screen x-coordinate to an offscreen x-coordinate (Roi coordinate of nearest pixel border).
-
offScreenY2
public int offScreenY2(int sy)
Converts a screen y-coordinate to an offscreen y-coordinate (Roi coordinate of nearest pixel border).
-
offScreenXD
public double offScreenXD(int sx)
Converts a screen x-coordinate to a floating-point offscreen x-coordinate.
-
offScreenYD
public double offScreenYD(int sy)
Converts a screen y-coordinate to a floating-point offscreen y-coordinate.
-
screenX
public int screenX(int ox)
Converts an offscreen x-coordinate to a screen x-coordinate.
-
screenY
public int screenY(int oy)
Converts an offscreen y-coordinate to a screen y-coordinate.
-
screenXD
public int screenXD(double ox)
Converts a floating-point offscreen x-coordinate to a screen x-coordinate.
-
screenYD
public int screenYD(double oy)
Converts a floating-point offscreen x-coordinate to a screen x-coordinate.
-
getMagnification
public double getMagnification()
-
setMagnification
public void setMagnification(double magnification)
-
fitToWindow
public void fitToWindow()
-
getLowerZoomLevel
public static double getLowerZoomLevel(double currentMag)
-
getHigherZoomLevel
public static double getHigherZoomLevel(double currentMag)
-
zoomIn
public void zoomIn(int sx, int sy)
Zooms in by making the window bigger. If it can't be made bigger, then makes the source rectangle (srcRect) smaller and centers it on the position in the image where the cursor was when zooming has started. Note that sx and sy are screen coordinates.
-
canEnlarge
protected java.awt.Dimension canEnlarge(int newWidth, int newHeight)
Returns the size to which the window can be enlarged, or null if it can't be enlarged.newWidth, newHeight
is the size needed for showing the full image at the magnification needed
-
zoomOut
public void zoomOut(int sx, int sy)
Zooms out by making the source rectangle (srcRect) larger and centering it on (x,y). If we can't make it larger, then make the window smaller. Note that sx and sy are screen coordinates.
-
unzoom
public void unzoom()
Implements the Image/Zoom/Original Scale command.
-
zoom100Percent
public void zoom100Percent()
Implements the Image/Zoom/View 100% command.
-
scroll
protected void scroll(int sx, int sy)
-
setDrawingColor
public void setDrawingColor(int ox, int oy, boolean setBackground)
Sets the foreground drawing color (or background color if 'setBackground' is true) to the color of the pixel at (ox,oy).
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent e)
- Specified by:
mousePressed
in interfacejava.awt.event.MouseListener
-
setupScroll
protected void setupScroll(int ox, int oy)
-
handlePopupMenu
protected void handlePopupMenu(java.awt.event.MouseEvent e)
-
mouseExited
public void mouseExited(java.awt.event.MouseEvent e)
- Specified by:
mouseExited
in interfacejava.awt.event.MouseListener
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent e)
- Specified by:
mouseDragged
in interfacejava.awt.event.MouseMotionListener
-
handleRoiMouseDown
protected void handleRoiMouseDown(java.awt.event.MouseEvent e)
-
disablePopupMenu
public void disablePopupMenu(boolean status)
Disable/enable popup menu.
-
setShowAllList
public void setShowAllList(Overlay showAllList)
-
getShowAllList
public Overlay getShowAllList()
-
setShowAllROIs
public void setShowAllROIs(boolean showAllROIs)
Obsolete
-
getShowAllROIs
public boolean getShowAllROIs()
Obsolete
-
getShowAllColor
public static java.awt.Color getShowAllColor()
Obsolete
-
setShowAllColor
public static void setShowAllColor(java.awt.Color c)
Obsolete
-
setCursor
public static void setCursor(java.awt.Cursor cursor, int type)
Experimental
-
setOverlay
public void setOverlay(Overlay overlay)
Use ImagePlus.setOverlay(ij.gui.Overlay).
-
getOverlay
public Overlay getOverlay()
Use ImagePlus.getOverlay().
-
setDisplayList
public void setDisplayList(java.util.Vector list)
Deprecated.replaced by ImagePlus.setOverlay(ij.gui.Overlay)
-
setDisplayList
public void setDisplayList(java.awt.Shape shape, java.awt.Color color, java.awt.BasicStroke stroke)
Deprecated.replaced by ImagePlus.setOverlay(Shape, Color, BasicStroke)
-
setDisplayList
public void setDisplayList(Roi roi, java.awt.Color color)
Deprecated.replaced by ImagePlus.setOverlay(Roi, Color, int, Color)
-
getDisplayList
public java.util.Vector getDisplayList()
Deprecated.replaced by ImagePlus.getOverlay()
-
setCustomRoi
public void setCustomRoi(boolean customRoi)
Allows plugins (e.g., Orthogonal_Views) to create a custom ROI using a display list.
-
getCustomRoi
public boolean getCustomRoi()
-
setShowCursorStatus
public void setShowCursorStatus(boolean status)
Called by IJ.showStatus() to prevent status bar text from being overwritten until the cursor moves at least 12 pixels.
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent e)
- Specified by:
mouseReleased
in interfacejava.awt.event.MouseListener
-
roiManagerSelect
public boolean roiManagerSelect(Roi roi, boolean delete)
-
mouseMoved
public void mouseMoved(java.awt.event.MouseEvent e)
- Specified by:
mouseMoved
in interfacejava.awt.event.MouseMotionListener
-
mouseEntered
public void mouseEntered(java.awt.event.MouseEvent e)
- Specified by:
mouseEntered
in interfacejava.awt.event.MouseListener
-
mouseClicked
public void mouseClicked(java.awt.event.MouseEvent e)
- Specified by:
mouseClicked
in interfacejava.awt.event.MouseListener
-
setScaleToFit
public void setScaleToFit(boolean scaleToFit)
-
getScaleToFit
public boolean getScaleToFit()
-
hideZoomIndicator
public boolean hideZoomIndicator(boolean hide)
-
repaintOverlay
public void repaintOverlay()
-
setLongClickDelay
public static void setLongClickDelay(int delay)
Sets the context menu long click delay in milliseconds (default is 1000). Set to 0 to disable long click triggering.
-
-