Module ij
Package ij

Class ImageJ

All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.event.ItemListener, java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer,, java.lang.Runnable, java.util.EventListener, javax.accessibility.Accessible

public class ImageJ
extends java.awt.Frame
implements java.awt.event.ActionListener, java.awt.event.MouseListener, java.awt.event.KeyListener, java.awt.event.WindowListener, java.awt.event.ItemListener, java.lang.Runnable
This frame is the main ImageJ class.

ImageJ is a work of the United States Government. It is in the public domain and open source. There is no copyright. You are free to do anything you want with this source but I like to get credit for my work and I would like you to offer your changes to me so I can possibly add them to the "official" version.

The following command line options are recognized by ImageJ:

     Opens a file
     Example 1: blobs.tif
     Example 2: /Users/wayne/images/blobs.tif
     Example 3: e81*.tif

  -macro path [arg]
     Runs a macro or script (JavaScript, BeanShell or Python), passing an
     optional string argument, which the macro or script can be retrieve
     using the getArgument() function. The macro or script is assumed to 
     be in the ImageJ/macros folder if 'path' is not a full directory path.
     Example 1: -macro analyze.ijm
     Example 2: -macro script.js /Users/wayne/images/stack1
     Example 2: -macro '1.2 2.4 3.8'

  -batch path [arg]
    Runs a macro or script (JavaScript, BeanShell or Python) in
    batch (no GUI) mode, passing an optional argument.
    ImageJ exits when the macro finishes.

  -eval "macro code"
     Evaluates macro code
     Example 1: -eval "print('Hello, world');"
     Example 2: -eval "return getVersion();"

  -run command
     Runs an ImageJ menu command
     Example: -run "About ImageJ..."
  -ijpath path
     Specifies the path to the directory containing the plugins directory
     Example: -ijpath /Applications/ImageJ

     Specifies the port ImageJ uses to determine if another instance is running
     Example 1: -port1 (use default port address + 1)
     Example 2: -port2 (use default port address + 2)
     Example 3: -port0 (don't check for another instance)

     Runs ImageJ in debug mode
Wayne Rasband (
See Also:
Serialized Form
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static class  ImageJ.ExceptionHandler
    Handles exceptions on the EDT.

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


    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


    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

    Modifier and Type Field Description
    static java.awt.Color backgroundColor  
    static java.lang.String BUILD  
    static int DEBUG
    Run ImageJ in debug mode.
    static int DEFAULT_PORT
    Address of socket where Image accepts commands
    static int EMBEDDED
    Run embedded in another application.
    static int NO_SHOW
    Run embedded and invisible in another application.
    static java.awt.Font SansSerif12
    SansSerif, 12-point, plain font.
    static int STANDALONE
    Run as normal application.
    static java.lang.String VERSION
    Plugins should call IJ.getVersion() or IJ.getFullVersion() to get the version string.

    Fields inherited from class java.awt.Frame


    Fields inherited from class java.awt.Component


    Fields inherited from interface java.awt.image.ImageObserver

  • Constructor Summary

    Constructor Description
    Creates a new ImageJ frame that runs as an application.
    ImageJ​(int mode)
    Creates a new ImageJ frame that runs as an application in the specified mode.
    ImageJ​(java.applet.Applet applet)
    Creates a new ImageJ frame that runs as an applet.
    ImageJ​(java.applet.Applet applet, int mode)
    If 'applet' is not null, creates a new ImageJ frame that runs as an applet.
  • Method Summary

    Modifier and Type Method Description
    void actionPerformed​(java.awt.event.ActionEvent e)
    Handle menu events.
    void exitWhenQuitting​(boolean ewq)
    ImageJ calls System.exit() when qutting when 'exitWhenQuitting' is true.
    static java.lang.String[] getArgs()
    Returns the command line arguments passed to ImageJ.
    static java.lang.String getCommandName()  
    java.lang.String getInfo()  
    static int getPort()
    Returns the port that ImageJ checks on startup to see if another instance is running.
    java.awt.Point getPreferredLocation()  
    ProgressBar getProgressBar()  
    java.awt.Panel getStatusBar()  
    void itemStateChanged​(java.awt.event.ItemEvent e)
    Handles CheckboxMenuItem state changes.
    void keyPressed​(java.awt.event.KeyEvent e)  
    void keyReleased​(java.awt.event.KeyEvent e)  
    void keyTyped​(java.awt.event.KeyEvent e)  
    static void main​(java.lang.String[] args)  
    static java.lang.String modifiers​(int flags)
    Return the current list of modifier keys.
    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 quit()
    Called by ImageJ when the user selects Quit.
    boolean quitting()
    Returns true if ImageJ is exiting.
    boolean quittingViaMacro()
    Returns true if ImageJ is quitting as a result of a run("Quit") macro call.
    void register​(java.lang.Class c)
    Adds the specified class to a Vector to keep it from being garbage collected, causing static fields to be reset.
    void resize()  
    void run()
    Quit using a separate thread, hopefully avoiding thread deadlocks.
    void runFilterPlugIn​(java.lang.Object theFilter, java.lang.String cmd, java.lang.String arg)  
    java.lang.Object runUserPlugIn​(java.lang.String commandName, java.lang.String className, java.lang.String arg, boolean createNewLoader)  
    void savePreferences​(java.util.Properties prefs)
    Called once when ImageJ quits.
    static void setCommandName​(java.lang.String name)  
    void windowActivated​(java.awt.event.WindowEvent e)  
    void windowClosed​(java.awt.event.WindowEvent e)  
    void windowClosing​(java.awt.event.WindowEvent e)  
    void windowDeactivated​(java.awt.event.WindowEvent e)  
    void windowDeiconified​(java.awt.event.WindowEvent e)  
    void windowIconified​(java.awt.event.WindowEvent e)  
    void windowOpened​(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, processWindowEvent, 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
  • Field Details

  • Constructor Details

    • ImageJ

      public ImageJ()
      Creates a new ImageJ frame that runs as an application.
    • ImageJ

      public ImageJ​(int mode)
      Creates a new ImageJ frame that runs as an application in the specified mode.
    • ImageJ

      public ImageJ​(java.applet.Applet applet)
      Creates a new ImageJ frame that runs as an applet.
    • ImageJ

      public ImageJ​(java.applet.Applet applet, int mode)
      If 'applet' is not null, creates a new ImageJ frame that runs as an applet. If 'mode' is ImageJ.EMBEDDED and 'applet is null, creates an embedded (non-standalone) version of ImageJ.
  • Method Details

    • getPreferredLocation

      public java.awt.Point getPreferredLocation()
    • getProgressBar

      public ProgressBar getProgressBar()
    • getStatusBar

      public java.awt.Panel getStatusBar()
    • runFilterPlugIn

      public void runFilterPlugIn​(java.lang.Object theFilter, java.lang.String cmd, java.lang.String arg)
    • runUserPlugIn

      public java.lang.Object runUserPlugIn​(java.lang.String commandName, java.lang.String className, java.lang.String arg, boolean createNewLoader)
    • modifiers

      public static java.lang.String modifiers​(int flags)
      Return the current list of modifier keys.
    • actionPerformed

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

      public void itemStateChanged​(java.awt.event.ItemEvent e)
      Handles CheckboxMenuItem state changes.
      Specified by:
      itemStateChanged in interface java.awt.event.ItemListener
    • mousePressed

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

      public java.lang.String getInfo()
    • mouseReleased

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

      public void mouseExited​(java.awt.event.MouseEvent e)
      Specified by:
      mouseExited 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
    • keyPressed

      public void keyPressed​(java.awt.event.KeyEvent e)
      Specified by:
      keyPressed in interface java.awt.event.KeyListener
    • keyTyped

      public void keyTyped​(java.awt.event.KeyEvent e)
      Specified by:
      keyTyped in interface java.awt.event.KeyListener
    • keyReleased

      public void keyReleased​(java.awt.event.KeyEvent e)
      Specified by:
      keyReleased in interface java.awt.event.KeyListener
    • windowClosing

      public void windowClosing​(java.awt.event.WindowEvent e)
      Specified by:
      windowClosing in interface java.awt.event.WindowListener
    • windowActivated

      public void windowActivated​(java.awt.event.WindowEvent e)
      Specified by:
      windowActivated in interface java.awt.event.WindowListener
    • windowClosed

      public void windowClosed​(java.awt.event.WindowEvent e)
      Specified by:
      windowClosed in interface java.awt.event.WindowListener
    • windowDeactivated

      public void windowDeactivated​(java.awt.event.WindowEvent e)
      Specified by:
      windowDeactivated in interface java.awt.event.WindowListener
    • windowDeiconified

      public void windowDeiconified​(java.awt.event.WindowEvent e)
      Specified by:
      windowDeiconified in interface java.awt.event.WindowListener
    • windowIconified

      public void windowIconified​(java.awt.event.WindowEvent e)
      Specified by:
      windowIconified in interface java.awt.event.WindowListener
    • windowOpened

      public void windowOpened​(java.awt.event.WindowEvent e)
      Specified by:
      windowOpened in interface java.awt.event.WindowListener
    • register

      public void register​(java.lang.Class c)
      Adds the specified class to a Vector to keep it from being garbage collected, causing static fields to be reset.
    • quit

      public void quit()
      Called by ImageJ when the user selects Quit.
    • quitting

      public boolean quitting()
      Returns true if ImageJ is exiting.
    • quittingViaMacro

      public boolean quittingViaMacro()
      Returns true if ImageJ is quitting as a result of a run("Quit") macro call.
    • savePreferences

      public void savePreferences​(java.util.Properties prefs)
      Called once when ImageJ quits.
    • main

      public static void main​(java.lang.String[] args)
    • getPort

      public static int getPort()
      Returns the port that ImageJ checks on startup to see if another instance is running.
      See Also:
    • getArgs

      public static java.lang.String[] getArgs()
      Returns the command line arguments passed to ImageJ.
    • exitWhenQuitting

      public void exitWhenQuitting​(boolean ewq)
      ImageJ calls System.exit() when qutting when 'exitWhenQuitting' is true.
    • run

      public void run()
      Quit using a separate thread, hopefully avoiding thread deadlocks.
      Specified by:
      run in interface java.lang.Runnable
    • getCommandName

      public static java.lang.String getCommandName()
    • setCommandName

      public static void setCommandName​(java.lang.String name)
    • resize

      public void resize()