org.gjt.btools.gui.dialog
Class MessageBoxBase

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Dialog
                          |
                          +--javax.swing.JDialog
                                |
                                +--org.gjt.btools.gui.dialog.MessageBoxBase
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.lang.Runnable, java.io.Serializable, javax.swing.WindowConstants
Direct Known Subclasses:
LongMessageBox, MessageBox

public abstract class MessageBoxBase
extends javax.swing.JDialog
implements java.awt.event.ActionListener, java.lang.Runnable

Dialog box that displays a message to the user and presents a selection of buttons to choose from in order to close the dialog.

Once the message box has been created, it can be displayed using either runBox() or runBoxBg(). Using runBox() will block all input to the parent frame until a button is pressed to close the message box. Using runBoxBg() will allow the parent frame to continue receiving input as per normal. Only runBox() will return the button which was pressed to close the message box.

This is an abstract base class for different types of message box that use different methods for displaying the given message/information. Subclasses must reimplement initInformationComponent() accordingly.

See Also:
initInformationComponent(java.lang.String), Serialized Form

Field Summary
static int CANCEL
          ID for the Cancel button.
static int NO
          ID for the No button.
static int OK
          ID for the OK button.
static int YES
          ID for the Yes button.
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Dialog
 
Fields inherited from class java.awt.Window
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
MessageBoxBase(java.awt.Dialog parent, java.lang.String title, java.lang.String msg, int buttons)
          Creates a new message box with the given message and title, and containing the specified set of buttons.
MessageBoxBase(java.awt.Frame parent, java.lang.String title, java.lang.String msg, int buttons)
          Creates a new message box with the given message and title, and containing the specified set of buttons.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Called automatically when a button is pressed on the message box.
protected abstract  java.awt.Component initInformationComponent(java.lang.String msg)
          Initialises the component containing the information to be presented (such as the message).
 void run()
          Used when running the message box in a separate thread, so that input to the parent frame is not blocked.
 int runBox()
          Displays the message box, blocking all input from the parent window until the message box is closed.
 void runBoxBg()
          Displays the message box, allowing the parent frame to continue receiving input as per normal.
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Dialog
addNotify, dispose, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setResizable, setTitle, setUndecorated, show
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, finalize, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, removeNotify, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, transferFocusBackward, transferFocusDownCycle, 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, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, 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, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

YES

public static final int YES
ID for the Yes button.

See Also:
Constant Field Values

NO

public static final int NO
ID for the No button.

See Also:
Constant Field Values

OK

public static final int OK
ID for the OK button.

See Also:
Constant Field Values

CANCEL

public static final int CANCEL
ID for the Cancel button.

See Also:
Constant Field Values
Constructor Detail

MessageBoxBase

public MessageBoxBase(java.awt.Frame parent,
                      java.lang.String title,
                      java.lang.String msg,
                      int buttons)
Creates a new message box with the given message and title, and containing the specified set of buttons. The buttons are specified by a bitwise OR-ing of the predefined constants YES, NO, OK, CANCEL.

Parameters:
parent - the parent window for the new dialog box.
title - the title of the message box
msg - the message to display in the message box.
buttons - the set of buttons to be displayed.

MessageBoxBase

public MessageBoxBase(java.awt.Dialog parent,
                      java.lang.String title,
                      java.lang.String msg,
                      int buttons)
Creates a new message box with the given message and title, and containing the specified set of buttons. The buttons are specified by a bitwise OR-ing of the predefined constants YES, NO, OK, CANCEL.

Parameters:
parent - the parent window for the new dialog box.
title - the title of the message box
msg - the message to display in the message box.
buttons - the set of buttons to be displayed.
Method Detail

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Called automatically when a button is pressed on the message box. Stores which button was pressed, and closes the message box.

This method should not be called directly.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e - contains event details, including which button was pressed.

initInformationComponent

protected abstract java.awt.Component initInformationComponent(java.lang.String msg)
Initialises the component containing the information to be presented (such as the message). The buttons should not be included in this component.

Parameters:
msg - the message to be displayed.
Returns:
the newly initialised information component.

run

public void run()
Used when running the message box in a separate thread, so that input to the parent frame is not blocked.

This method should not be called directly. Instead, runBoxBg() should be called, which will handle the creation of the new thread.

Specified by:
run in interface java.lang.Runnable
See Also:
runBoxBg()

runBox

public int runBox()
Displays the message box, blocking all input from the parent window until the message box is closed. This method does not return until a button is pressed and the message box is closed.

Returns:
the button that was pressed to close the box - this will be one of the predefined constants YES, NO, OK or CANCEL.
See Also:
runBoxBg()

runBoxBg

public void runBoxBg()
Displays the message box, allowing the parent frame to continue receiving input as per normal. This method displays the message box and returns immediately, without waiting for the user to press a button.

The method operates by running the message box in a separate thread. Once the message box is closed, the thread is terminated.

See Also:
runBox()


Copyright © 1998-2001, Ben Burton
This software is released under the GNU Public License.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@debian.org).