Module ij
Package ij

# Class ImageJ

java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
ij.ImageJ

All Implemented Interfaces:
  `ActionListener`, `ItemListener`, `KeyListener`, `MouseListener`, `WindowListener`, `ImageObserver`, `MenuContainer`, `Serializable`, `Runnable`, `EventListener`, `Accessible`

public class ImageJ extends Frame implements ActionListener, MouseListener, KeyListener, WindowListener, ItemListener, 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:

      "file-name"
         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 script.py '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

      -port<n>
         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)

      -debug
         Runs ImageJ in debug mode

Author:
  Wayne Rasband (rasband@gmail.com)
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

`Frame.AccessibleAWTFrame`

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

`Window.AccessibleAWTWindow, Window.Type`

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

`Container.AccessibleAWTContainer`

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

`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

## Field Summary

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

### 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
`ImageJ()`
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(Applet applet)`
Creates a new ImageJ frame that runs as an applet.
`ImageJ(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(ActionEvent e)`
Handle menu events.
`void`
`exitWhenQuitting(boolean ewq)`
ImageJ calls System.exit() when qutting when 'exitWhenQuitting' is true.
`static String[]`
`getArgs()`
Returns the command line arguments passed to ImageJ.
`static String`
`getCommandName()`
`String`
`getInfo()`
`static int`
`getPort()`
Returns the port that ImageJ checks on startup to see if another instance is running.
`Point`
`getPreferredLocation()`
`ProgressBar`
`getProgressBar()`
`Panel`
`getStatusBar()`
`static String`
`getStatusBarText()`
`void`
`itemStateChanged(ItemEvent e)`
Handles CheckboxMenuItem state changes.
`void`
`keyPressed(KeyEvent e)`
`void`
`keyReleased(KeyEvent e)`
`void`
`keyTyped(KeyEvent e)`
`static void`
`main(String[] args)`
`static String`
`modifiers(int flags)`
Return the current list of modifier keys.
`void`
`mouseClicked(MouseEvent e)`
`void`
`mouseEntered(MouseEvent e)`
`void`
`mouseExited(MouseEvent e)`
`void`
`mousePressed(MouseEvent e)`
`void`
`mouseReleased(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(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(Object theFilter, String cmd, String arg)`
`Object`
`runUserPlugIn(String commandName, String className, String arg, boolean createNewLoader)`
`void`
`savePreferences(Properties prefs)`
Called once when ImageJ quits.
`static void`
`setCommandName(String name)`
`void`
`windowActivated(WindowEvent e)`
`void`
`windowClosed(WindowEvent e)`
`void`
`windowClosing(WindowEvent e)`
`void`
`windowDeactivated(WindowEvent e)`
`void`
`windowDeiconified(WindowEvent e)`
`void`
`windowIconified(WindowEvent e)`
`void`
`windowOpened(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

### VERSION

public static final String VERSION
Plugins should call IJ.getVersion() or IJ.getFullVersion() to get the version string.

See Also:
  - Constant Field Values

### BUILD

public static final String BUILD

See Also:
  - Constant Field Values

### backgroundColor

public static Color backgroundColor

### SansSerif12

public static final Font SansSerif12
SansSerif, 12-point, plain font.

### SansSerif14

public static final Font SansSerif14
SansSerif, 14-point, plain font.

### DEFAULT_PORT

public static final int DEFAULT_PORT
Address of socket where Image accepts commands

See Also:
  - Constant Field Values

### STANDALONE

public static final int STANDALONE
Run as normal application.

See Also:
  - Constant Field Values

### EMBEDDED

public static final int EMBEDDED
Run embedded in another application.

See Also:
  - Constant Field Values

### NO_SHOW

public static final int NO_SHOW
Run embedded and invisible in another application.

See Also:
  - Constant Field Values

### IMAGEJ_APP

public static final int IMAGEJ_APP
Run as the ImageJ application.

See Also:
  - Constant Field Values

### DEBUG

public static final int DEBUG
Run ImageJ in debug mode.

See Also:
  - Constant Field Values

## 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(Applet applet)
Creates a new ImageJ frame that runs as an applet.

### ImageJ

public ImageJ(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 Point getPreferredLocation()

### getProgressBar

public ProgressBar getProgressBar()

### getStatusBar

public Panel getStatusBar()

### getStatusBarText

public static String getStatusBarText()

### runFilterPlugIn

public void runFilterPlugIn(Object theFilter, String cmd, String arg)

### runUserPlugIn

public Object runUserPlugIn(String commandName, String className, String arg, boolean createNewLoader)

### modifiers

public static String modifiers(int flags)
Return the current list of modifier keys.

### actionPerformed

public void actionPerformed(ActionEvent e)
Handle menu events.

Specified by:
  `actionPerformed` in interface `ActionListener`

### itemStateChanged

public void itemStateChanged(ItemEvent e)
Handles CheckboxMenuItem state changes.

Specified by:
  `itemStateChanged` in interface `ItemListener`

### mousePressed

public void mousePressed(MouseEvent e)

Specified by:
  `mousePressed` in interface `MouseListener`

### getInfo

public String getInfo()

### mouseReleased

public void mouseReleased(MouseEvent e)

Specified by:
  `mouseReleased` in interface `MouseListener`

### mouseExited

public void mouseExited(MouseEvent e)

Specified by:
  `mouseExited` in interface `MouseListener`

### mouseClicked

public void mouseClicked(MouseEvent e)

Specified by:
  `mouseClicked` in interface `MouseListener`

### mouseEntered

public void mouseEntered(MouseEvent e)

Specified by:
  `mouseEntered` in interface `MouseListener`

### keyPressed

public void keyPressed(KeyEvent e)

Specified by:
  `keyPressed` in interface `KeyListener`

### keyTyped

public void keyTyped(KeyEvent e)

Specified by:
  `keyTyped` in interface `KeyListener`

### keyReleased

public void keyReleased(KeyEvent e)

Specified by:
  `keyReleased` in interface `KeyListener`

### windowClosing

public void windowClosing(WindowEvent e)

Specified by:
  `windowClosing` in interface `WindowListener`

### windowActivated

public void windowActivated(WindowEvent e)

Specified by:
  `windowActivated` in interface `WindowListener`

### windowClosed

public void windowClosed(WindowEvent e)

Specified by:
  `windowClosed` in interface `WindowListener`

### windowDeactivated

public void windowDeactivated(WindowEvent e)

Specified by:
  `windowDeactivated` in interface `WindowListener`

### windowDeiconified

public void windowDeiconified(WindowEvent e)

Specified by:
  `windowDeiconified` in interface `WindowListener`

### windowIconified

public void windowIconified(WindowEvent e)

Specified by:
  `windowIconified` in interface `WindowListener`

### windowOpened

public void windowOpened(WindowEvent e)

Specified by:
  `windowOpened` in interface `WindowListener`

### register

public void register(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(Properties prefs)
Called once when ImageJ quits.

### main

public static void main(String[] args)

### getPort

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

See Also:
  - `OtherInstance`

### getArgs

public static 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 `Runnable`

### getCommandName

public static String getCommandName()

### setCommandName

public static void setCommandName(String name)

### resize

public void resize()