Module ij
Package ij.gui

Class GenericDialog

  • All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.event.AdjustmentListener, java.awt.event.FocusListener, java.awt.event.ItemListener, java.awt.event.KeyListener, java.awt.event.TextListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible
    Direct Known Subclasses:
    NonBlockingGenericDialog

    public class GenericDialog
    extends java.awt.Dialog
    implements java.awt.event.ActionListener, java.awt.event.TextListener, java.awt.event.FocusListener, java.awt.event.ItemListener, java.awt.event.KeyListener, java.awt.event.AdjustmentListener, java.awt.event.WindowListener
    This class is a customizable modal dialog box. Here is an example GenericDialog with one string field and two numeric fields:
            public class Generic_Dialog_Example implements PlugIn {
              static String title="Example";
              static int width=512,height=512;
              public void run(String arg) {
                    GenericDialog gd = new GenericDialog("New Image");
                    gd.addStringField("Title: ", title);
                    gd.addNumericField("Width: ", width, 0);
                    gd.addNumericField("Height: ", height, 0);
                    gd.showDialog();
                    if (gd.wasCanceled()) return;
                    title = gd.getNextString();
                    width = (int)gd.getNextNumber();
                    height = (int)gd.getNextNumber();
                    IJ.newImage(title, "8-bit", width, height, 1);
             }
     }
     
    To work with macros, the first word of each component label must be unique. If this is not the case, add underscores, which will be converted to spaces when the dialog is displayed. For example, change the checkbox labels "Show Quality" and "Show Residue" to "Show_Quality" and "Show_Residue".
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.awt.Dialog

        java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
      • 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
      protected java.util.Vector checkbox  
      protected java.util.Vector choice  
      protected java.util.Vector defaultChoiceIndexes  
      protected java.util.Vector defaultStrings  
      protected java.util.Vector defaultText  
      protected java.util.Vector defaultValues  
      protected static GenericDialog instance  
      protected java.util.Vector numberField  
      protected java.util.Vector radioButtonGroups  
      protected java.util.Vector slider  
      protected java.util.Vector stringField  
      protected java.awt.TextArea textArea1  
      protected java.awt.TextArea textArea2  
      protected java.awt.Component theLabel  
      • Fields inherited from class java.awt.Dialog

        DEFAULT_MODALITY_TYPE
      • 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
      GenericDialog​(java.lang.String title)
      Creates a new GenericDialog with the specified title.
      GenericDialog​(java.lang.String title, java.awt.Frame parent)
      Creates a new GenericDialog using the specified title and parent frame.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent e)  
      void addButton​(java.lang.String label, java.awt.event.ActionListener listener)
      Add button to the dialog
      void addCheckbox​(java.lang.String label, boolean defaultValue)
      Adds a checkbox.
      void addCheckboxGroup​(int rows, int columns, java.lang.String[] labels, boolean[] defaultValues)
      Adds a group of checkboxs using a grid layout.
      void addCheckboxGroup​(int rows, int columns, java.lang.String[] labels, boolean[] defaultValues, java.lang.String[] headings)
      Adds a group of checkboxs using a grid layout.
      void addChoice​(java.lang.String label, java.lang.String[] items, java.lang.String defaultItem)
      Adds a popup menu.
      void addDialogListener​(DialogListener dl)
      Add an Object implementing the DialogListener interface.
      void addDirectoryField​(java.lang.String label, java.lang.String defaultPath)
      Adds a directory text field and "Browse" button, where the field width is determined by the length of 'defaultPath', with a minimum of 25 columns.
      void addDirectoryField​(java.lang.String label, java.lang.String defaultPath, int columns)  
      <E extends java.lang.Enum<E>>
      void
      addEnumChoice​(java.lang.String label, E defaultItem)
      Adds a group of choices to the dialog with menu items taken from the enum class of the specified default item (enum constant).
      <E extends java.lang.Enum<E>>
      void
      addEnumChoice​(java.lang.String label, E[] enumArray, E defaultItem)
      Adds a group of choices to the dialog with menu items taken from the supplied array of enum elements.
      void addFileField​(java.lang.String label, java.lang.String defaultPath)
      Adds a file text field and "Browse" button, where the field width is determined by the length of 'defaultPath', with a minimum of 25 columns.
      void addFileField​(java.lang.String label, java.lang.String defaultPath, int columns)  
      void addHelp​(java.lang.String url)
      Adds a "Help" button that opens the specified URL in the default browser.
      void addImage​(ImagePlus image)
      Adds an image to the dialog.
      void addImageChoice​(java.lang.String label, java.lang.String defaultImage)
      Adds a popup menu that lists the currently open images.
      void addMessage​(java.lang.String text)
      Adds a message consisting of one or more lines of text.
      void addMessage​(java.lang.String text, java.awt.Font font)
      Adds a message consisting of one or more lines of text, which will be displayed using the specified font.
      void addMessage​(java.lang.String text, java.awt.Font font, java.awt.Color color)
      Adds a message consisting of one or more lines of text, which will be displayed using the specified font and color.
      void addNumericField​(java.lang.String label, double defaultValue)
      Adds a numeric field.
      void addNumericField​(java.lang.String label, double defaultValue, int digits)
      Adds a numeric field.
      void addNumericField​(java.lang.String label, double defaultValue, int digits, int columns, java.lang.String units)
      Adds a numeric field.
      void addPanel​(java.awt.Panel panel)
      Adds a Panel to the dialog.
      void addPanel​(java.awt.Panel panel, int constraints, java.awt.Insets insets)
      Adds a Panel to the dialog with custom contraint and insets.
      void addPreviewCheckbox​(PlugInFilterRunner pfr)
      Adds a checkbox labelled "Preview" for "automatic" preview.
      void addPreviewCheckbox​(PlugInFilterRunner pfr, java.lang.String label)
      Add the preview checkbox with user-defined label; for details see the addPreviewCheckbox method with standard "Preview" label.
      void addRadioButtonGroup​(java.lang.String label, java.lang.String[] items, int rows, int columns, java.lang.String defaultItem)
      Adds a radio button group.
      void addSlider​(java.lang.String label, double minValue, double maxValue, double defaultValue)
      Adds a slider (scroll bar) to the dialog box.
      void addSlider​(java.lang.String label, double minValue, double maxValue, double defaultValue, double stepSize)
      This vesion of addSlider() adds a 'stepSize' argument.
      Example: http://wsr.imagej.net/macros/SliderDemo.txt
      void addStringField​(java.lang.String label, java.lang.String defaultText)
      Adds an 8 column text field.
      void addStringField​(java.lang.String label, java.lang.String defaultText, int columns)
      Adds a text field.
      void addTextAreas​(java.lang.String text1, java.lang.String text2, int rows, int columns)
      Adds one or two (side by side) text areas.
      void addToSameRow()
      Makes the next item appear in the same row as the previous.
      void adjustmentValueChanged​(java.awt.event.AdjustmentEvent e)  
      void centerDialog​(boolean b)
      Display dialog centered on the primary screen.
      void dispose()
      Closes the dialog; records the options
      void enableYesNoCancel()
      Make this a "Yes No Cancel" dialog.
      void enableYesNoCancel​(java.lang.String yesLabel, java.lang.String noLabel)
      Make this a "Yes No Cancel" dialog with custom labels.
      void focusGained​(java.awt.event.FocusEvent e)  
      void focusLost​(java.awt.event.FocusEvent e)  
      java.awt.Button[] getButtons()
      Returns references to the "OK" ("Yes"), "Cancel", "No", and "Help" buttons as an array of length 4.
      java.util.Vector getCheckboxes()
      Returns the Vector containing the Checkboxes.
      java.util.Vector getChoices()
      Returns the Vector containing the Choices.
      java.lang.String getErrorMessage()
      Returns an error message if getNextNumber was unable to convert a string into a number, otherwise, returns null.
      java.awt.Insets getInsets()  
      static GenericDialog getInstance()  
      java.awt.Label getLabel()
      Returns a reference to the label of the most recently added numeric field, string field, choice or slider.
      java.awt.Component getMessage()
      Returns a reference to the Label or MultiLineLabel created by the last addMessage() call.
      boolean getNextBoolean()
      Returns the state of the next checkbox.
      java.lang.String getNextChoice()
      Returns the selected item in the next popup menu.
      int getNextChoiceIndex()
      Returns the index of the selected item in the next popup menu.
      <E extends java.lang.Enum<E>>
      E
      getNextEnumChoice​(java.lang.Class<E> enumClass)
      Returns the selected item in the next enum choice menu.
      ImagePlus getNextImage()  
      double getNextNumber()
      Returns the contents of the next numeric field, or NaN if the field does not contain a number.
      java.lang.String getNextRadioButton()
      Returns the selected item in the next radio button group.
      java.lang.String getNextString()
      Returns the contents of the next text field.
      java.lang.String getNextText()
      Returns the contents of the next text area.
      java.util.Vector getNumericFields()
      Returns the Vector containing the numeric TextFields.
      java.awt.Checkbox getPreviewCheckbox()
      Returns a reference to the Preview checkbox.
      java.util.Vector getRadioButtonGroups()
      Returns the Vector that contains the RadioButtonGroups.
      java.util.Vector getSliders()
      Returns the Vector containing the sliders (Scrollbars).
      java.util.Vector getStringFields()
      Returns the Vector containing the string TextFields.
      java.awt.TextArea getTextArea1()
      Returns a reference to textArea1.
      java.awt.TextArea getTextArea2()
      Returns a reference to textArea2.
      protected java.lang.Double getValue​(java.lang.String text)  
      void hideCancelButton()
      Do not display "Cancel" button.
      boolean invalidNumber()
      Returns true if one or more of the numeric fields contained an invalid number.
      protected boolean isMacro()  
      boolean isPreviewActive()
      Returns 'true' if this dialog has a "Preview" checkbox and it is enabled.
      void itemStateChanged​(java.awt.event.ItemEvent e)  
      void keyPressed​(java.awt.event.KeyEvent e)  
      void keyReleased​(java.awt.event.KeyEvent e)  
      void keyTyped​(java.awt.event.KeyEvent e)  
      void paint​(java.awt.Graphics g)  
      double parseDouble​(java.lang.String s)  
      void previewRunning​(boolean isRunning)
      Used by PlugInFilterRunner to provide visable feedback whether preview is running or not by switching from "Preview" to "wait..."
      void repaint()  
      void resetCounters()
      Reset the counters before reading the dialog parameters
      void setCancelLabel​(java.lang.String label)
      Sets a replacement label for the "Cancel" button.
      void setDefaultString​(int index, java.lang.String str)  
      void setEchoChar​(char echoChar)
      Sets the echo character for the next string field.
      void setFont​(java.awt.Font font)  
      void setHelpLabel​(java.lang.String label)
      Sets a replacement label for the "Help" button.
      void setInsets​(int top, int left, int bottom)
      Set the insets (margins), in pixels, that will be used for the next component added to the dialog (except components added to the same row with addToSameRow)
      void setLocation​(int x, int y)  
      void setOKLabel​(java.lang.String label)
      Sets a replacement label for the "OK" button.
      void setSmartRecording​(boolean smartRecording)
      Unchanged parameters are not recorder in 'smart recording' mode.
      protected void setup()  
      void showDialog()
      Displays this dialog box.
      void textValueChanged​(java.awt.event.TextEvent e)  
      boolean wasCanceled()
      Returns true if the user clicked on "Cancel".
      boolean wasOKed()
      Returns true if the user has clicked on "OK" or a macro is running.
      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.Dialog

        addNotify, getAccessibleContext, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, paramString, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, setVisible, show, toBack
      • Methods inherited from class java.awt.Window

        addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, postEvent, processEvent, processWindowEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, 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, 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, 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, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, 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
    • Field Detail

      • numberField

        protected java.util.Vector numberField
      • stringField

        protected java.util.Vector stringField
      • checkbox

        protected java.util.Vector checkbox
      • choice

        protected java.util.Vector choice
      • slider

        protected java.util.Vector slider
      • radioButtonGroups

        protected java.util.Vector radioButtonGroups
      • textArea1

        protected java.awt.TextArea textArea1
      • textArea2

        protected java.awt.TextArea textArea2
      • defaultValues

        protected java.util.Vector defaultValues
      • defaultText

        protected java.util.Vector defaultText
      • defaultStrings

        protected java.util.Vector defaultStrings
      • defaultChoiceIndexes

        protected java.util.Vector defaultChoiceIndexes
      • theLabel

        protected java.awt.Component theLabel
    • Constructor Detail

      • GenericDialog

        public GenericDialog​(java.lang.String title)
        Creates a new GenericDialog with the specified title. Uses the current image image window as the parent frame or the ImageJ frame if no image windows are open. Dialog parameters are recorded by ImageJ's command recorder but this requires that the first word of each label be unique.
      • GenericDialog

        public GenericDialog​(java.lang.String title,
                             java.awt.Frame parent)
        Creates a new GenericDialog using the specified title and parent frame.
    • Method Detail

      • addNumericField

        public void addNumericField​(java.lang.String label,
                                    double defaultValue)
        Adds a numeric field. The first word of the label must be unique or command recording will not work.
        Parameters:
        label - the label
        defaultValue - value to be initially displayed
      • addNumericField

        public void addNumericField​(java.lang.String label,
                                    double defaultValue,
                                    int digits)
        Adds a numeric field. The first word of the label must be unique or command recording will not work.
        Parameters:
        label - the label
        defaultValue - value to be initially displayed
        digits - number of digits to right of decimal point
      • addNumericField

        public void addNumericField​(java.lang.String label,
                                    double defaultValue,
                                    int digits,
                                    int columns,
                                    java.lang.String units)
        Adds a numeric field. The first word of the label must be unique or command recording will not work.
        Parameters:
        label - the label
        defaultValue - value to be initially displayed
        digits - number of digits to right of decimal point
        columns - width of field in characters
        units - a string displayed to the right of the field
      • addStringField

        public void addStringField​(java.lang.String label,
                                   java.lang.String defaultText)
        Adds an 8 column text field.
        Parameters:
        label - the label
        defaultText - the text initially displayed
      • addStringField

        public void addStringField​(java.lang.String label,
                                   java.lang.String defaultText,
                                   int columns)
        Adds a text field.
        Parameters:
        label - the label
        defaultText - text initially displayed
        columns - width of the text field. If columns is 8 or more, additional items may be added to this line with addToSameRow()
      • setEchoChar

        public void setEchoChar​(char echoChar)
        Sets the echo character for the next string field.
      • addDirectoryField

        public void addDirectoryField​(java.lang.String label,
                                      java.lang.String defaultPath)
        Adds a directory text field and "Browse" button, where the field width is determined by the length of 'defaultPath', with a minimum of 25 columns. Use getNextString to retrieve the directory path. Call OpenDialog.setDefaultDirectory() to set the default directory used when the user clicks on "Browse". Based on the addDirectoryField() method in Fiji's GenericDialogPlus class.
        See Also:
        OpenDialog.setDefaultDirectory(String)
      • addDirectoryField

        public void addDirectoryField​(java.lang.String label,
                                      java.lang.String defaultPath,
                                      int columns)
      • addFileField

        public void addFileField​(java.lang.String label,
                                 java.lang.String defaultPath)
        Adds a file text field and "Browse" button, where the field width is determined by the length of 'defaultPath', with a minimum of 25 columns. Use getNextString to retrieve the file path. Based on the addFileField() method in Fiji's GenericDialogPlus class.
      • addFileField

        public void addFileField​(java.lang.String label,
                                 java.lang.String defaultPath,
                                 int columns)
      • addButton

        public void addButton​(java.lang.String label,
                              java.awt.event.ActionListener listener)
        Add button to the dialog
        Parameters:
        label - button label
        listener - listener to handle the action when pressing the button
      • addImageChoice

        public void addImageChoice​(java.lang.String label,
                                   java.lang.String defaultImage)
        Adds a popup menu that lists the currently open images. Call getNextImage() to retrieve the selected image. Based on the addImageChoice() method in Fiji's GenericDialogPlus class.
        Parameters:
        label - the label
        defaultImage - the image title initially selected in the menu or the first image if null
      • getNextImage

        public ImagePlus getNextImage()
      • addEnumChoice

        public <E extends java.lang.Enum<E>> void addEnumChoice​(java.lang.String label,
                                                                E defaultItem)
        Adds a group of choices to the dialog with menu items taken from the enum class of the specified default item (enum constant). Calls the original (string-based) addChoice(String, String[], String) method. Usage example:
         import ij.process.AutoThresholder.Method;
         ...
         Method method = Method.Otsu;
         
         GenericDialog gd = new GenericDialog("Select AutoThresholder Method");
         gd.addEnumChoice("All threshold methods", method);
         ...
         gd.showDialog();
         ...
         method = gd.getNextEnumChoice(Method.class);
         
        Type Parameters:
        E - the generic enum type containing the items to chose from
        Parameters:
        label - the label displayed for this choice group
        defaultItem - the menu item initially selected
        See Also:
        addEnumChoice(String, Enum[], Enum), getNextEnumChoice(Class)
      • addEnumChoice

        public <E extends java.lang.Enum<E>> void addEnumChoice​(java.lang.String label,
                                                                E[] enumArray,
                                                                E defaultItem)
        Adds a group of choices to the dialog with menu items taken from the supplied array of enum elements. This allows to present only a subset of enum choices in a specified order. A default item (enum constant) must be specified which, if null of not contained in the enum array, is replaced by the first element of the enum array. Calls the original (string-based) addChoice(String, String[], String) method. Usage example:
         import ij.process.AutoThresholder.Method;
         ...
         Method[] selectMethods = {Method.Triangle, Method.Otsu, Method.Huang};
         Method method = Method.Otsu;
         
         GenericDialog gd = new GenericDialog("Select AutoThresholder Method");
         gd.addEnumChoice("Select threshold methods", selectMethods, method);
         ...
         gd.showDialog();
         ...
         method = gd.getNextEnumChoice(Method.class);
         
        Type Parameters:
        E - the generic enum type containing the items to choose from
        Parameters:
        label - the label displayed for this choice group
        enumArray - an array of enum items (of type E)
        defaultItem - the menu item initially selected (of type E, may be null)
        See Also:
        addEnumChoice(String, Enum), getNextEnumChoice(Class)
      • getNextEnumChoice

        public <E extends java.lang.Enum<E>> E getNextEnumChoice​(java.lang.Class<E> enumClass)
        Returns the selected item in the next enum choice menu. Note that 'enumClass' is required to infer the proper enum type. Throws IllegalArgumentException if the selected item is not a defined constant in the specified enum class.
        Type Parameters:
        E - the generic enum type
        Parameters:
        enumClass - the enum type
        Returns:
        the selected item
      • addCheckbox

        public void addCheckbox​(java.lang.String label,
                                boolean defaultValue)
        Adds a checkbox.
        Parameters:
        label - the label
        defaultValue - the initial state
      • addPreviewCheckbox

        public void addPreviewCheckbox​(PlugInFilterRunner pfr)
        Adds a checkbox labelled "Preview" for "automatic" preview. The reference to this checkbox can be retrieved by getPreviewCheckbox() and it provides the additional method previewRunning for optical feedback while preview is prepared. PlugInFilters can have their "run" method automatically called for preview under the following conditions: - the PlugInFilter must pass a reference to itself (i.e., "this") as an argument to the AddPreviewCheckbox - it must implement the DialogListener interface and set the filter parameters in the dialogItemChanged method. - it must have DIALOG and PREVIEW set in its flags. A previewCheckbox is always off when the filter is started and does not get recorded by the Macro Recorder.
        Parameters:
        pfr - A reference to the PlugInFilterRunner calling the PlugInFilter if automatic preview is desired, null otherwise.
      • addPreviewCheckbox

        public void addPreviewCheckbox​(PlugInFilterRunner pfr,
                                       java.lang.String label)
        Add the preview checkbox with user-defined label; for details see the addPreviewCheckbox method with standard "Preview" label. Adds the checkbox when the current image is a CompositeImage in "Composite" mode, unlike the one argument version. Note that a GenericDialog can have only one PreviewCheckbox.
      • addCheckboxGroup

        public void addCheckboxGroup​(int rows,
                                     int columns,
                                     java.lang.String[] labels,
                                     boolean[] defaultValues)
        Adds a group of checkboxs using a grid layout.
        Parameters:
        rows - the number of rows
        columns - the number of columns
        labels - the labels
        defaultValues - the initial states
      • addCheckboxGroup

        public void addCheckboxGroup​(int rows,
                                     int columns,
                                     java.lang.String[] labels,
                                     boolean[] defaultValues,
                                     java.lang.String[] headings)
        Adds a group of checkboxs using a grid layout.
        Parameters:
        rows - the number of rows
        columns - the number of columns
        labels - the labels
        defaultValues - the initial states
        headings - the column headings Example: http://imagej.nih.gov/ij/plugins/multi-column-dialog/index.html
      • addRadioButtonGroup

        public void addRadioButtonGroup​(java.lang.String label,
                                        java.lang.String[] items,
                                        int rows,
                                        int columns,
                                        java.lang.String defaultItem)
        Adds a radio button group.
        Parameters:
        label - group label (or null)
        items - radio button labels
        rows - number of rows
        columns - number of columns
        defaultItem - button initially selected
      • addChoice

        public void addChoice​(java.lang.String label,
                              java.lang.String[] items,
                              java.lang.String defaultItem)
        Adds a popup menu.
        Parameters:
        label - the label
        items - the menu items
        defaultItem - the menu item initially selected
      • addMessage

        public void addMessage​(java.lang.String text)
        Adds a message consisting of one or more lines of text.
      • addMessage

        public void addMessage​(java.lang.String text,
                               java.awt.Font font)
        Adds a message consisting of one or more lines of text, which will be displayed using the specified font.
      • addMessage

        public void addMessage​(java.lang.String text,
                               java.awt.Font font,
                               java.awt.Color color)
        Adds a message consisting of one or more lines of text, which will be displayed using the specified font and color.
      • addTextAreas

        public void addTextAreas​(java.lang.String text1,
                                 java.lang.String text2,
                                 int rows,
                                 int columns)
        Adds one or two (side by side) text areas. Append "SCROLLBARS_VERTICAL_ONLY" to the text of the first text area to get vertical scrollbars and "SCROLLBARS_BOTH" to get both vertical and horizontal scrollbars.
        Parameters:
        text1 - initial contents of the first text area
        text2 - initial contents of the second text area or null
        rows - the number of rows
        columns - the number of columns
      • addSlider

        public void addSlider​(java.lang.String label,
                              double minValue,
                              double maxValue,
                              double defaultValue)
        Adds a slider (scroll bar) to the dialog box. Floating point values are used if (maxValue-minValue)<=5.0 and either defaultValue or minValue are non-integer.
        Parameters:
        label - the label
        minValue - the minimum value of the slider
        maxValue - the maximum value of the slider
        defaultValue - the initial value of the slider
      • addSlider

        public void addSlider​(java.lang.String label,
                              double minValue,
                              double maxValue,
                              double defaultValue,
                              double stepSize)
        This vesion of addSlider() adds a 'stepSize' argument.
        Example: http://wsr.imagej.net/macros/SliderDemo.txt
      • addPanel

        public void addPanel​(java.awt.Panel panel)
        Adds a Panel to the dialog.
      • addPanel

        public void addPanel​(java.awt.Panel panel,
                             int constraints,
                             java.awt.Insets insets)
        Adds a Panel to the dialog with custom contraint and insets. The defaults are GridBagConstraints.WEST (left justified) and "new Insets(5, 0, 0, 0)" (5 pixels of padding at the top).
      • addImage

        public void addImage​(ImagePlus image)
        Adds an image to the dialog.
      • setInsets

        public void setInsets​(int top,
                              int left,
                              int bottom)
        Set the insets (margins), in pixels, that will be used for the next component added to the dialog (except components added to the same row with addToSameRow)
                Default insets:
                        addMessage: 0,20,0 (empty string) or 10,20,0
                        addCheckbox: 15,20,0 (first checkbox) or 0,20,0
                        addCheckboxGroup: 10,0,0
                        addRadioButtonGroup: 5,10,0
                        addNumericField: 5,0,3 (first field) or 0,0,3
                        addStringField: 5,0,5 (first field) or 0,0,5
                        addChoice: 5,0,5 (first field) or 0,0,5
                 
      • addToSameRow

        public void addToSameRow()
        Makes the next item appear in the same row as the previous. May be used for addNumericField, addSlider, addChoice, addCheckbox, addStringField, addMessage, addPanel, and before the showDialog() method (in the latter case, the buttons appear to the right of the previous item). Note that addMessage (and addStringField, if its column width is more than 8) use the remaining width, so it must be the last item of a row.
      • setOKLabel

        public void setOKLabel​(java.lang.String label)
        Sets a replacement label for the "OK" button.
      • setCancelLabel

        public void setCancelLabel​(java.lang.String label)
        Sets a replacement label for the "Cancel" button.
      • setHelpLabel

        public void setHelpLabel​(java.lang.String label)
        Sets a replacement label for the "Help" button.
      • setSmartRecording

        public void setSmartRecording​(boolean smartRecording)
        Unchanged parameters are not recorder in 'smart recording' mode.
      • enableYesNoCancel

        public void enableYesNoCancel()
        Make this a "Yes No Cancel" dialog.
      • enableYesNoCancel

        public void enableYesNoCancel​(java.lang.String yesLabel,
                                      java.lang.String noLabel)
        Make this a "Yes No Cancel" dialog with custom labels. Here is an example:
                        GenericDialog gd = new GenericDialog("YesNoCancel Demo");
                        gd.addMessage("This is a custom YesNoCancel dialog");
                        gd.enableYesNoCancel("Do something", "Do something else");
                        gd.showDialog();
                        if (gd.wasCanceled())
                                IJ.log("User clicked 'Cancel'");
                        else if (gd.wasOKed())
                                IJ. log("User clicked 'Yes'");
                        else
                                IJ. log("User clicked 'No'");
                        
      • hideCancelButton

        public void hideCancelButton()
        Do not display "Cancel" button.
      • addDialogListener

        public void addDialogListener​(DialogListener dl)
        Add an Object implementing the DialogListener interface. This object will be notified by its dialogItemChanged method of input to the dialog. The first DialogListener will be also called after the user has typed 'OK' or if the dialog has been invoked by a macro; it should read all input fields of the dialog. For other listeners, the OK button will not cause a call to dialogItemChanged; the CANCEL button will never cause such a call.
        Parameters:
        dl - the Object that wants to listen.
      • wasCanceled

        public boolean wasCanceled()
        Returns true if the user clicked on "Cancel".
      • wasOKed

        public boolean wasOKed()
        Returns true if the user has clicked on "OK" or a macro is running.
      • getNextNumber

        public double getNextNumber()
        Returns the contents of the next numeric field, or NaN if the field does not contain a number.
      • getValue

        protected java.lang.Double getValue​(java.lang.String text)
      • parseDouble

        public double parseDouble​(java.lang.String s)
      • invalidNumber

        public boolean invalidNumber()
        Returns true if one or more of the numeric fields contained an invalid number. Must be called after one or more calls to getNextNumber().
      • getErrorMessage

        public java.lang.String getErrorMessage()
        Returns an error message if getNextNumber was unable to convert a string into a number, otherwise, returns null.
      • getNextString

        public java.lang.String getNextString()
        Returns the contents of the next text field.
      • getNextBoolean

        public boolean getNextBoolean()
        Returns the state of the next checkbox.
      • getNextChoice

        public java.lang.String getNextChoice()
        Returns the selected item in the next popup menu.
      • getNextChoiceIndex

        public int getNextChoiceIndex()
        Returns the index of the selected item in the next popup menu.
      • getNextRadioButton

        public java.lang.String getNextRadioButton()
        Returns the selected item in the next radio button group.
      • getNextText

        public java.lang.String getNextText()
        Returns the contents of the next text area.
      • showDialog

        public void showDialog()
        Displays this dialog box.
      • setFont

        public void setFont​(java.awt.Font font)
        Overrides:
        setFont in class java.awt.Container
      • resetCounters

        public void resetCounters()
        Reset the counters before reading the dialog parameters
      • getNumericFields

        public java.util.Vector getNumericFields()
        Returns the Vector containing the numeric TextFields.
      • getStringFields

        public java.util.Vector getStringFields()
        Returns the Vector containing the string TextFields.
      • getCheckboxes

        public java.util.Vector getCheckboxes()
        Returns the Vector containing the Checkboxes.
      • getChoices

        public java.util.Vector getChoices()
        Returns the Vector containing the Choices.
      • getSliders

        public java.util.Vector getSliders()
        Returns the Vector containing the sliders (Scrollbars).
      • getRadioButtonGroups

        public java.util.Vector getRadioButtonGroups()
        Returns the Vector that contains the RadioButtonGroups.
      • getTextArea1

        public java.awt.TextArea getTextArea1()
        Returns a reference to textArea1.
      • getTextArea2

        public java.awt.TextArea getTextArea2()
        Returns a reference to textArea2.
      • getMessage

        public java.awt.Component getMessage()
        Returns a reference to the Label or MultiLineLabel created by the last addMessage() call. Otherwise returns null.
      • getPreviewCheckbox

        public java.awt.Checkbox getPreviewCheckbox()
        Returns a reference to the Preview checkbox.
      • isPreviewActive

        public boolean isPreviewActive()
        Returns 'true' if this dialog has a "Preview" checkbox and it is enabled.
      • getButtons

        public java.awt.Button[] getButtons()
        Returns references to the "OK" ("Yes"), "Cancel", "No", and "Help" buttons as an array of length 4. If a button is not present, the corresponding array element is null.
      • previewRunning

        public void previewRunning​(boolean isRunning)
        Used by PlugInFilterRunner to provide visable feedback whether preview is running or not by switching from "Preview" to "wait..."
      • centerDialog

        public void centerDialog​(boolean b)
        Display dialog centered on the primary screen.
      • setLocation

        public void setLocation​(int x,
                                int y)
        Overrides:
        setLocation in class java.awt.Window
      • setDefaultString

        public void setDefaultString​(int index,
                                     java.lang.String str)
      • setup

        protected void setup()
      • actionPerformed

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

        public void textValueChanged​(java.awt.event.TextEvent e)
        Specified by:
        textValueChanged in interface java.awt.event.TextListener
      • itemStateChanged

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

        public void focusGained​(java.awt.event.FocusEvent e)
        Specified by:
        focusGained in interface java.awt.event.FocusListener
      • focusLost

        public void focusLost​(java.awt.event.FocusEvent e)
        Specified by:
        focusLost in interface java.awt.event.FocusListener
      • keyPressed

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

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

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

        public java.awt.Insets getInsets()
        Overrides:
        getInsets in class java.awt.Container
      • adjustmentValueChanged

        public void adjustmentValueChanged​(java.awt.event.AdjustmentEvent e)
        Specified by:
        adjustmentValueChanged in interface java.awt.event.AdjustmentListener
      • repaint

        public void repaint()
        Overrides:
        repaint in class java.awt.Component
      • paint

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

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

        public void addHelp​(java.lang.String url)
        Adds a "Help" button that opens the specified URL in the default browser. With v1.46b or later, displays an HTML formatted message if 'url' starts with "". There is an example at http://imagej.nih.gov/ij/macros/js/DialogWithHelp.js If url is an empty String, pressing the "Help" button does nothing except calling the DialogListeners (if any). See also: setHelpLabel.
      • isMacro

        protected boolean isMacro()
      • dispose

        public void dispose()
        Closes the dialog; records the options
        Overrides:
        dispose in class java.awt.Window
      • getLabel

        public java.awt.Label getLabel()
        Returns a reference to the label of the most recently added numeric field, string field, choice or slider.
      • windowActivated

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

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

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

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

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

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