Class 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.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
    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

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      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)  
      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.
      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)  
      void setEditMode​(ImagePlus imp, boolean editMode)  
      void setOverlay​(Overlay overlay)  
      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().
      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, toString, 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.awt.MenuContainer

        getFont, postEvent
    • Constructor Detail

      • RoiManager

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

      • 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
      • 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.
      • getCount

        public int getCount()
        Returns the ROI count.
      • 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.
      • 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)
      • 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.