Module ij
Package ij.gui

Class ImageCanvas

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
  • Nested Class Summary

    Nested classes/interfaces inherited from class java.awt.Canvas

    java.awt.Canvas.AccessibleAWTCanvas

    Nested classes/interfaces inherited from class java.awt.Component

    java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
  • Field Summary

    Fields 
    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 pixel
    protected 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 zooming
    protected int zoomTargetOY  

    Fields inherited from class java.awt.Component

    accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT

    Fields inherited from interface java.awt.image.ImageObserver

    ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
  • Constructor Summary

    Constructors 
    Constructor Description
    ImageCanvas​(ImagePlus imp)  
  • Method Summary

    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()
    Obsolete
    Overlay getShowAllList()  
    boolean getShowAllROIs()
    Obsolete
    int 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)
    Experimental
    void 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)
    Obsolete
    void setShowAllList​(Overlay showAllList)  
    void setShowAllROIs​(boolean showAllROIs)
    Obsolete
    void 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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

  • Method Details

    • 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 class java.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 class java.awt.Canvas
    • paint

      public void paint​(java.awt.Graphics g)
      Overrides:
      paint in class java.awt.Canvas
    • getSliceNumber

      public int getSliceNumber​(java.lang.String label)
    • resetDoubleBuffer

      public void resetDoubleBuffer()
    • getPreferredSize

      public java.awt.Dimension getPreferredSize()
      Overrides:
      getPreferredSize in class java.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 interface java.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 interface java.awt.event.MouseListener
    • mouseDragged

      public void mouseDragged​(java.awt.event.MouseEvent e)
      Specified by:
      mouseDragged in interface java.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 interface java.awt.event.MouseListener
    • roiManagerSelect

      public boolean roiManagerSelect​(Roi roi, boolean delete)
    • mouseMoved

      public void mouseMoved​(java.awt.event.MouseEvent e)
      Specified by:
      mouseMoved in interface java.awt.event.MouseMotionListener
    • mouseEntered

      public void mouseEntered​(java.awt.event.MouseEvent e)
      Specified by:
      mouseEntered in interface java.awt.event.MouseListener
    • mouseClicked

      public void mouseClicked​(java.awt.event.MouseEvent e)
      Specified by:
      mouseClicked in interface java.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.