Package ij.gui
Class GenericDialog
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Dialog
ij.gui.GenericDialog
- All Implemented Interfaces:
ActionListener
,AdjustmentListener
,FocusListener
,ItemListener
,KeyListener
,TextListener
,WindowListener
,ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
- Direct Known Subclasses:
NonBlockingGenericDialog
public class GenericDialog
extends Dialog
implements ActionListener, TextListener, FocusListener, ItemListener, KeyListener, AdjustmentListener, 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:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.awt.Dialog
Dialog.AccessibleAWTDialog, Dialog.ModalExclusionType, Dialog.ModalityType
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
FieldsModifier and TypeFieldDescriptionprotected Vector
protected Vector
protected Vector
protected Vector
protected Vector
protected Vector
static final int
protected Vector
protected Vector
protected Vector
protected Vector
protected TextArea
protected TextArea
protected Component
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
ConstructorsConstructorDescriptionGenericDialog
(String title) Creates a new GenericDialog with the specified title.GenericDialog
(String title, Frame parent) Creates a new GenericDialog using the specified title and parent frame. -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
addCheckbox
(String label, boolean defaultValue) Adds a checkbox.void
addCheckboxGroup
(int rows, int columns, String[] labels, boolean[] defaultValues) Adds a group of checkboxs using a grid layout.void
addCheckboxGroup
(int rows, int columns, String[] labels, boolean[] defaultValues, String[] headings) Adds a group of checkboxs using a grid layout.void
Adds a popup menu.void
Add an Object implementing the DialogListener interface.void
Adds a "Help" button that opens the specified URL in the default browser.void
Adds an image to the dialog.void
addMessage
(String text) Adds a message consisting of one or more lines of text.void
addMessage
(String text, Font font) Adds a message consisting of one or more lines of text, which will be displayed using the specified font.void
addMessage
(String text, Font font, 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
(String label, double defaultValue, int digits) Adds a numeric field.void
addNumericField
(String label, double defaultValue, int digits, int columns, String units) Adds a numeric field.void
Adds a Panel to the dialog.void
Adds a Panel to the dialog with custom contraint and insets.void
Adds a checkbox labelled "Preview" for "automatic" preview.void
addPreviewCheckbox
(PlugInFilterRunner pfr, String label) Add the preview checkbox with user-defined label; for details see the addPreviewCheckbox method with standard "Preview" label.void
addRadioButtonGroup
(String label, String[] items, int rows, int columns, String defaultItem) Adds a radio button group.void
Adds a slider (scroll bar) to the dialog box.void
addStringField
(String label, String defaultText) Adds an 8 column text field.void
addStringField
(String label, String defaultText, int columns) Adds a text field.void
addTextAreas
(String text1, String text2, int rows, int columns) Adds one or two (side by side) text areas.void
void
centerDialog
(boolean b) Display dialog centered on the primary screen.void
Make this a "Yes No Cancel" dialog.void
enableYesNoCancel
(String yesLabel, String noLabel) Make this a "Yes No Cancel" dialog with custom labels.void
void
Button[]
Returns references to the "OK" ("Yes"), "Cancel", and if present, "No" buttons as an array.Returns the Vector containing the Checkboxes.Returns the Vector containing the Choices.Returns an error message if getNextNumber was unable to convert a string into a number, otherwise, returns null.Returns a reference to the Label or MultiLineLabel created by the last addMessage() call, or null if addMessage() was not called.boolean
Returns the state of the next checkbox.Returns the selected item in the next popup menu.int
Returns the index of the selected item in the next popup menu.double
Returns the contents of the next numeric field, or NaN if the field does not contain a number.Returns the selected item in the next radio button group.Returns the contents of the next text field.Returns the contents of the next textarea.Returns the Vector containing the numeric TextFields.Returns a reference to the Preview checkbox.Returns the Vector that contains the RadioButtonGroups.Returns the Vector containing the sliders (Scrollbars).Returns the Vector containing the string TextFields.Returns a reference to textArea1.Returns a reference to textArea2.protected Double
void
No not display "Cancel" button.boolean
Returns true if one or more of the numeric fields contained an invalid number.protected boolean
isMacro()
boolean
Returns 'true' if this dialog has a "Preview" checkbox and it is enabled.void
void
void
void
void
double
void
previewRunning
(boolean isRunning) Used by PlugInFilterRunner to provide visable feedback whether preview is running or not by switching from "Preview" to "wait..."void
setCancelLabel
(String label) Sets a replacement label for the "Cancel" button.void
setEchoChar
(char echoChar) Sets the echo character for the next string field.void
setHelpLabel
(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.void
setLocation
(int x, int y) void
setOKLabel
(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
Displays this dialog box.void
boolean
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
void
void
void
void
void
void
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, 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, 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, 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, remove, 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
-
Field Details
-
MAX_SLIDERS
public static final int MAX_SLIDERS- See Also:
-
numberField
-
stringField
-
checkbox
-
choice
-
slider
-
radioButtonGroups
-
textArea1
-
textArea2
-
defaultValues
-
defaultText
-
defaultStrings
-
defaultChoiceIndexes
-
theLabel
-
-
Constructor Details
-
GenericDialog
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
Creates a new GenericDialog using the specified title and parent frame.
-
-
Method Details
-
addNumericField
Adds a numeric field. The first word of the label must be unique or command recording will not work.- Parameters:
label
- the labeldefaultValue
- value to be initially displayeddigits
- number of digits to right of decimal point
-
addNumericField
public void addNumericField(String label, double defaultValue, int digits, int columns, String units) Adds a numeric field. The first word of the label must be unique or command recording will not work.- Parameters:
label
- the labeldefaultValue
- value to be initially displayeddigits
- number of digits to right of decimal pointcolumns
- width of field in charactersunits
- a string displayed to the right of the field
-
addStringField
Adds an 8 column text field.- Parameters:
label
- the labeldefaultText
- the text initially displayed
-
addStringField
Adds a text field.- Parameters:
label
- the labeldefaultText
- text initially displayedcolumns
- width of the text field
-
setEchoChar
public void setEchoChar(char echoChar) Sets the echo character for the next string field. -
addCheckbox
Adds a checkbox.- Parameters:
label
- the labeldefaultValue
- the initial state
-
addPreviewCheckbox
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
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
Adds a group of checkboxs using a grid layout.- Parameters:
rows
- the number of rowscolumns
- the number of columnslabels
- the labelsdefaultValues
- the initial states
-
addCheckboxGroup
public void addCheckboxGroup(int rows, int columns, String[] labels, boolean[] defaultValues, String[] headings) Adds a group of checkboxs using a grid layout.- Parameters:
rows
- the number of rowscolumns
- the number of columnslabels
- the labelsdefaultValues
- the initial statesheadings
- the column headings Example: http://imagej.nih.gov/ij/plugins/multi-column-dialog/index.html
-
addRadioButtonGroup
public void addRadioButtonGroup(String label, String[] items, int rows, int columns, String defaultItem) Adds a radio button group.- Parameters:
label
- group label (or null)items
- radio button labelsrows
- number of rowscolumns
- number of columnsdefaultItem
- button initially selected
-
addChoice
Adds a popup menu.- Parameters:
label
- the labelitems
- the menu itemsdefaultItem
- the menu item initially selected
-
addMessage
Adds a message consisting of one or more lines of text. -
addMessage
Adds a message consisting of one or more lines of text, which will be displayed using the specified font. -
addMessage
Adds a message consisting of one or more lines of text, which will be displayed using the specified font and color. -
addTextAreas
Adds one or two (side by side) text areas.- Parameters:
text1
- initial contents of the first text areatext2
- initial contents of the second text area or nullrows
- the number of rowscolumns
- the number of columns
-
addSlider
Adds a slider (scroll bar) to the dialog box. Floating point values will be used if (maxValue-minValue)<=5.0 and either minValue or maxValue are non-integer.- Parameters:
label
- the labelminValue
- the minimum value of the slidermaxValue
- the maximum value of the sliderdefaultValue
- the initial value of the slider
-
addPanel
Adds a Panel to the dialog. -
addPanel
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
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.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
-
setOKLabel
Sets a replacement label for the "OK" button. -
setCancelLabel
Sets a replacement label for the "Cancel" button. -
setHelpLabel
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
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()No not display "Cancel" button. -
addDialogListener
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
-
parseDouble
-
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
Returns an error message if getNextNumber was unable to convert a string into a number, otherwise, returns null. -
getNextString
Returns the contents of the next text field. -
getNextBoolean
public boolean getNextBoolean()Returns the state of the next checkbox. -
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
Returns the selected item in the next radio button group. -
getNextText
Returns the contents of the next textarea. -
showDialog
public void showDialog()Displays this dialog box. -
getNumericFields
Returns the Vector containing the numeric TextFields. -
getStringFields
Returns the Vector containing the string TextFields. -
getCheckboxes
Returns the Vector containing the Checkboxes. -
getChoices
Returns the Vector containing the Choices. -
getSliders
Returns the Vector containing the sliders (Scrollbars). -
getRadioButtonGroups
Returns the Vector that contains the RadioButtonGroups. -
getTextArea1
Returns a reference to textArea1. -
getTextArea2
Returns a reference to textArea2. -
getMessage
Returns a reference to the Label or MultiLineLabel created by the last addMessage() call, or null if addMessage() was not called. -
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
Returns references to the "OK" ("Yes"), "Cancel", and if present, "No" buttons as an array. -
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 classWindow
-
setup
protected void setup() -
actionPerformed
- Specified by:
actionPerformed
in interfaceActionListener
-
textValueChanged
- Specified by:
textValueChanged
in interfaceTextListener
-
itemStateChanged
- Specified by:
itemStateChanged
in interfaceItemListener
-
focusGained
- Specified by:
focusGained
in interfaceFocusListener
-
focusLost
- Specified by:
focusLost
in interfaceFocusListener
-
keyPressed
- Specified by:
keyPressed
in interfaceKeyListener
-
keyReleased
- Specified by:
keyReleased
in interfaceKeyListener
-
keyTyped
- Specified by:
keyTyped
in interfaceKeyListener
-
getInsets
-
adjustmentValueChanged
- Specified by:
adjustmentValueChanged
in interfaceAdjustmentListener
-
paint
-
windowClosing
- Specified by:
windowClosing
in interfaceWindowListener
-
addHelp
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 -
isMacro
protected boolean isMacro() -
windowActivated
- Specified by:
windowActivated
in interfaceWindowListener
-
windowOpened
- Specified by:
windowOpened
in interfaceWindowListener
-
windowClosed
- Specified by:
windowClosed
in interfaceWindowListener
-
windowIconified
- Specified by:
windowIconified
in interfaceWindowListener
-
windowDeiconified
- Specified by:
windowDeiconified
in interfaceWindowListener
-
windowDeactivated
- Specified by:
windowDeactivated
in interfaceWindowListener
-