Module ij

Class RoiManager

java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
ij.plugin.frame.PlugInFrame
ij.plugin.frame.RoiManager
All Implemented Interfaces:
PlugIn, java.awt.event.ActionListener, java.awt.event.FocusListener, java.awt.event.ItemListener, java.awt.event.MouseListener, java.awt.event.MouseWheelListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.lang.Iterable<Roi>, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ListSelectionListener

public class RoiManager
extends PlugInFrame
implements java.awt.event.ActionListener, java.awt.event.ItemListener, java.awt.event.MouseListener, java.awt.event.MouseWheelListener, javax.swing.event.ListSelectionListener, java.lang.Iterable<Roi>
This plugin implements the Analyze/Tools/ROI Manager command.
See Also:
Serialized Form
  • Nested Class Summary

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

    java.awt.Frame.AccessibleAWTFrame

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

    java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type

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

    java.awt.Container.AccessibleAWTContainer

    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
    static java.lang.String LOC_KEY  

    Fields inherited from class java.awt.Frame

    CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR

    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
    RoiManager()
    Opens the "ROI Manager" window, or activates it if it is already open.
    RoiManager​(boolean b)
    Constructs an ROIManager without displaying it.
  • Method Summary

    Modifier and Type Method Description
    void actionPerformed​(java.awt.event.ActionEvent e)  
    void add​(Roi roi, int n)
    Adds the specified ROI to the list.
    void add​(ImagePlus imp, Roi roi, int n)
    Adds the specified ROI to the list.
    void addRoi​(Roi roi)
    Adds the specified ROI.
    void allowRecording​(boolean allow)  
    void close()
    Overrides PlugInFrame.close().
    void deselect()  
    void deselect​(Roi roi)
    Deselect the specified ROI if it is the only one selected.
    int getCount()
    Returns the ROI count.
    boolean getDrawLabels()  
    static java.lang.String getErrorMessage()
    Returns the most recent I/O error message, or null if there was no error.
    int[] getIndexes()
    Returns an array of the selected indexes or all indexes if none are selected.
    static java.lang.String getIndexesAsString()
    This is a macro-callable version of getSelectedIndexes().
    static RoiManager getInstance()
    Returns a reference to the ROI Manager, or null if it is not open and a batch mode macro is not running.
    static RoiManager getInstance2()
    Returns a reference to the ROI Manager window or to the macro batch mode RoiManager, or null if neither exists.
    java.awt.List getList()
    Deprecated. 
    java.lang.String getName​(int index)
    Returns the name of the ROI with the specified index, or null if the index is out of range.
    static java.lang.String getName​(java.lang.String index)
    Returns the name of the ROI with the specified index.
    static RoiManager getRawInstance()  
    Roi getRoi​(int index)
    Returns a reference to the ROI at the specified index.
    int getRoiIndex​(Roi roi)
    Returns the index of the specified Roi, or -1 if it is not found.
    static RoiManager getRoiManager()
    Returns a reference to the ROI Manager and opens the "ROI Manager" window if it is not already open.
    java.util.Hashtable getROIs()
    Deprecated. 
    Roi[] getRoisAsArray()
    Returns the ROIs as an array.
    int getSelectedIndex()
    Returns the index of the first selected ROI or -1 if no ROI is selected.
    int[] getSelectedIndexes()
    Returns an array of the selected indexes.
    Roi[] getSelectedRoisAsArray()
    Returns the selected ROIs as an array, or all the ROIs if none are selected.
    int getSliceNumber​(java.lang.String label)
    Returns the slice number associated with the specified name, or -1 if the name does not include a slice number.
    boolean isSelected​(int index)
    Returns 'true' if the index is valid and the indexed ROI is selected.
    void itemStateChanged​(java.awt.event.ItemEvent e)  
    java.util.Iterator<Roi> iterator()  
    void mouseClicked​(java.awt.event.MouseEvent e)  
    void mouseEntered​(java.awt.event.MouseEvent e)  
    void mouseExited​(java.awt.event.MouseEvent e)  
    void mousePressed​(java.awt.event.MouseEvent e)  
    void mouseReleased​(java.awt.event.MouseEvent e)  
    void mouseWheelMoved​(java.awt.event.MouseWheelEvent event)  
    void moveRoisToOverlay​(ImagePlus imp)
    Moves all the ROIs to the specified image's overlay.
    void multiCrop​(java.lang.String directory, java.lang.String options)  
    ResultsTable multiMeasure​(ImagePlus imp)
    This method measures the selected ROIs, or all ROIs if none are selected, on all the slices of a stack and returns a ResultsTable arranged with one row per slice.
    void processWindowEvent​(java.awt.event.WindowEvent e)  
    void rename​(int index, java.lang.String newName)  
    void reset()
    Clears this RoiManager so that it contains no ROIs.
    static void resetMultiMeasureResults()  
    boolean runCommand​(ImagePlus imp, java.lang.String cmd)
    Using the specified image, runs the ROI Manager "Add", "Add & Draw", "Update", "Delete", "Measure", "Draw", "Show All", "Show None", "Fill", "Deselect", "Select All", "Combine", "AND", "XOR", "Split", "Sort" or "Multi Measure" command.
    boolean runCommand​(java.lang.String cmd)
    Executes the ROI Manager "Add", "Add & Draw", "Update", "Delete", "Measure", "Draw", "Show All", "Show None", "Fill", "Deselect", "Select All", "Combine", "AND", "XOR", "Split", "Sort" or "Multi Measure" command.
    boolean runCommand​(java.lang.String cmd, java.lang.String name)
    Executes the ROI Manager "Open", "Save" or "Rename" command.
    boolean runCommand​(java.lang.String cmd, java.lang.String hexColor, double lineWidth)
    Adds the current selection to the ROI Manager, using the specified color (a 6 digit hex string) and line width.
    void select​(int index)
    Assigns the ROI at the specified index to the current image.
    void select​(int index, boolean shiftKeyDown, boolean altKeyDown)  
    void select​(ImagePlus imp, int index)
    Assigns the ROI at the specified index to 'imp'.
    void selectAndMakeVisible​(ImagePlus imp, int index)  
    int selected()
    Returns the count of selected ROIs.
    void selectGroup​(int group)
    Selects all ROIs of a given group.
    static void selectGroup​(java.lang.String group)
    Obsolete; replaced by RoiManager.selectGroup() macro function.
    void setEditMode​(ImagePlus imp, boolean editMode)  
    void setGroup​(int group)
    Sets the group for the selected ROIs.
    static void setGroup​(java.lang.String group)
    Obsolete; replaced by RoiManager.setGroup() macro function.
    void setOverlay​(Overlay overlay)  
    void setPosition​(int position)
    Sets the position for the selected ROIs.
    void setRoi​(Roi roi, int index)
    Replaces the ROI at the specified index.
    void setSelectedIndexes​(int[] indexes)
    Selects multiple ROIs, where 'indexes' is an array of integers, each greater than or equal to 0 and less than the value returned by getCount().
    java.lang.String toString()  
    void translate​(double dx, double dy)
    Moves the selected ROIs or all the ROIs if none are selected.
    void valueChanged​(javax.swing.event.ListSelectionEvent e)  
    void windowActivated​(java.awt.event.WindowEvent e)  

    Methods inherited from class java.awt.Frame

    addNotify, getAccessibleContext, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, paramString, remove, removeNotify, setBackground, setCursor, setExtendedState, setIconImage, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated

    Methods inherited from class java.awt.Window

    addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront

    Methods inherited from class java.awt.Container

    add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusDownCycle, update, validate, validateTree

    Methods inherited from class java.awt.Component

    action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator

    Methods inherited from interface java.awt.MenuContainer

    getFont, postEvent
  • Field Details

  • Constructor Details

    • RoiManager

      public RoiManager()
      Opens the "ROI Manager" window, or activates it if it is already open.
      See Also:
      RoiManager(boolean), getRoiManager()
    • RoiManager

      public RoiManager​(boolean b)
      Constructs an ROIManager without displaying it. The boolean argument is ignored.
  • Method Details

    • actionPerformed

      public void actionPerformed​(java.awt.event.ActionEvent e)
      Specified by:
      actionPerformed in interface java.awt.event.ActionListener
    • itemStateChanged

      public void itemStateChanged​(java.awt.event.ItemEvent e)
      Specified by:
      itemStateChanged in interface java.awt.event.ItemListener
    • addRoi

      public void addRoi​(Roi roi)
      Adds the specified ROI.
    • add

      public void add​(Roi roi, int n)
      Adds the specified ROI to the list. The second argument ('n') will be used to form the first part of the ROI label if it is zero or greater.
      Parameters:
      roi - the Roi to be added
      n - if zero or greater, will be used to form the first part of the label
    • add

      public void add​(ImagePlus imp, Roi roi, int n)
      Adds the specified ROI to the list. The third argument ('n') will be used to form the first part of the ROI label if it is zero or greater.
      Parameters:
      imp - the image associated with the ROI, or null
      roi - the Roi to be added
      n - if zero or greater, will be used to form the first part of the label
    • setRoi

      public void setRoi​(Roi roi, int index)
      Replaces the ROI at the specified index.
    • rename

      public void rename​(int index, java.lang.String newName)
    • getSliceNumber

      public int getSliceNumber​(java.lang.String label)
      Returns the slice number associated with the specified name, or -1 if the name does not include a slice number.
    • multiMeasure

      public ResultsTable multiMeasure​(ImagePlus imp)
      This method measures the selected ROIs, or all ROIs if none are selected, on all the slices of a stack and returns a ResultsTable arranged with one row per slice.
      See Also:
      JavaScript example
    • multiCrop

      public void multiCrop​(java.lang.String directory, java.lang.String options)
    • setGroup

      public void setGroup​(int group)
      Sets the group for the selected ROIs.
    • setPosition

      public void setPosition​(int position)
      Sets the position for the selected ROIs.
    • setGroup

      public static void setGroup​(java.lang.String group)
      Obsolete; replaced by RoiManager.setGroup() macro function.
    • getDrawLabels

      public boolean getDrawLabels()
    • processWindowEvent

      public void processWindowEvent​(java.awt.event.WindowEvent e)
      Overrides:
      processWindowEvent in class java.awt.Window
    • getRoiManager

      public static RoiManager getRoiManager()
      Returns a reference to the ROI Manager and opens the "ROI Manager" window if it is not already open.
    • getInstance

      public static RoiManager getInstance()
      Returns a reference to the ROI Manager, or null if it is not open and a batch mode macro is not running. If the ROI Manager is not open and a batch mode macro is running, returns the hidden batch mode RoiManager.
      See Also:
      getRoiManager()
    • getRawInstance

      public static RoiManager getRawInstance()
    • getInstance2

      public static RoiManager getInstance2()
      Returns a reference to the ROI Manager window or to the macro batch mode RoiManager, or null if neither exists.
    • getROIs

      public java.util.Hashtable getROIs()
      Deprecated.
      Obsolete
      See Also:
      getCount(), getRoisAsArray()
    • getList

      public java.awt.List getList()
      Deprecated.
      Obsolete
      See Also:
      getCount(), getRoisAsArray(), getSelectedIndex()
    • getCount

      public int getCount()
      Returns the ROI count.
    • selected

      public int selected()
      Returns the count of selected ROIs.
    • getRoiIndex

      public int getRoiIndex​(Roi roi)
      Returns the index of the specified Roi, or -1 if it is not found.
    • getSelectedIndex

      public int getSelectedIndex()
      Returns the index of the first selected ROI or -1 if no ROI is selected.
    • getRoi

      public Roi getRoi​(int index)
      Returns a reference to the ROI at the specified index.
    • getRoisAsArray

      public Roi[] getRoisAsArray()
      Returns the ROIs as an array.
    • getSelectedRoisAsArray

      public Roi[] getSelectedRoisAsArray()
      Returns the selected ROIs as an array, or all the ROIs if none are selected.
    • getName

      public java.lang.String getName​(int index)
      Returns the name of the ROI with the specified index, or null if the index is out of range. See also: RoiManager.getName() macro function.
    • getName

      public static java.lang.String getName​(java.lang.String index)
      Returns the name of the ROI with the specified index. Can be called from a macro using
      call("ij.plugin.frame.RoiManager.getName", index)
      Returns "null" if the Roi Manager is not open or index is out of range.
    • runCommand

      public boolean runCommand​(java.lang.String cmd)
      Executes the ROI Manager "Add", "Add & Draw", "Update", "Delete", "Measure", "Draw", "Show All", "Show None", "Fill", "Deselect", "Select All", "Combine", "AND", "XOR", "Split", "Sort" or "Multi Measure" command. Returns false if cmd is not one of these strings.
    • runCommand

      public boolean runCommand​(ImagePlus imp, java.lang.String cmd)
      Using the specified image, runs the ROI Manager "Add", "Add & Draw", "Update", "Delete", "Measure", "Draw", "Show All", "Show None", "Fill", "Deselect", "Select All", "Combine", "AND", "XOR", "Split", "Sort" or "Multi Measure" command.
    • runCommand

      public boolean runCommand​(java.lang.String cmd, java.lang.String name)
      Executes the ROI Manager "Open", "Save" or "Rename" command. Returns false if cmd is not "Open", "Save" or "Rename", or if an error occurs.
    • reset

      public void reset()
      Clears this RoiManager so that it contains no ROIs.
    • translate

      public void translate​(double dx, double dy)
      Moves the selected ROIs or all the ROIs if none are selected.
    • runCommand

      public boolean runCommand​(java.lang.String cmd, java.lang.String hexColor, double lineWidth)
      Adds the current selection to the ROI Manager, using the specified color (a 6 digit hex string) and line width.
    • select

      public void select​(int index)
      Assigns the ROI at the specified index to the current image.
    • select

      public void select​(ImagePlus imp, int index)
      Assigns the ROI at the specified index to 'imp'.
    • selectAndMakeVisible

      public void selectAndMakeVisible​(ImagePlus imp, int index)
    • select

      public void select​(int index, boolean shiftKeyDown, boolean altKeyDown)
    • selectGroup

      public void selectGroup​(int group)
      Selects all ROIs of a given group.
    • selectGroup

      public static void selectGroup​(java.lang.String group)
      Obsolete; replaced by RoiManager.selectGroup() macro function.
    • deselect

      public void deselect()
    • deselect

      public void deselect​(Roi roi)
      Deselect the specified ROI if it is the only one selected.
    • setEditMode

      public void setEditMode​(ImagePlus imp, boolean editMode)
    • close

      public void close()
      Overrides PlugInFrame.close().
      Overrides:
      close in class PlugInFrame
    • moveRoisToOverlay

      public void moveRoisToOverlay​(ImagePlus imp)
      Moves all the ROIs to the specified image's overlay.
    • mousePressed

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

      public void mouseWheelMoved​(java.awt.event.MouseWheelEvent event)
      Specified by:
      mouseWheelMoved in interface java.awt.event.MouseWheelListener
    • setSelectedIndexes

      public void setSelectedIndexes​(int[] indexes)
      Selects multiple ROIs, where 'indexes' is an array of integers, each greater than or equal to 0 and less than the value returned by getCount().
      See Also:
      getSelectedIndexes(), getSelectedRoisAsArray(), getCount()
    • getSelectedIndexes

      public int[] getSelectedIndexes()
      Returns an array of the selected indexes.
    • getIndexesAsString

      public static java.lang.String getIndexesAsString()
      This is a macro-callable version of getSelectedIndexes(). Example: indexes=split(call("ij.plugin.frame.RoiManager.getIndexesAsString"));
    • getIndexes

      public int[] getIndexes()
      Returns an array of the selected indexes or all indexes if none are selected.
    • isSelected

      public boolean isSelected​(int index)
      Returns 'true' if the index is valid and the indexed ROI is selected.
    • allowRecording

      public void allowRecording​(boolean allow)
    • mouseReleased

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

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

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

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

      public void valueChanged​(javax.swing.event.ListSelectionEvent e)
      Specified by:
      valueChanged in interface javax.swing.event.ListSelectionListener
    • windowActivated

      public void windowActivated​(java.awt.event.WindowEvent e)
      Specified by:
      windowActivated in interface java.awt.event.WindowListener
      Overrides:
      windowActivated in class PlugInFrame
    • resetMultiMeasureResults

      public static void resetMultiMeasureResults()
    • setOverlay

      public void setOverlay​(Overlay overlay)
    • getErrorMessage

      public static java.lang.String getErrorMessage()
      Returns the most recent I/O error message, or null if there was no error.
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.awt.Component
    • iterator

      public java.util.Iterator<Roi> iterator()
      Specified by:
      iterator in interface java.lang.Iterable<Roi>