|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
java.awt.Window
java.awt.Dialog
javax.swing.JDialog
bb.gui.ThrowableDialog
public class ThrowableDialog
Subclass of JDialog which is used to notify the user of a caught Throwable.
Normally, to display an error to the user, one might simply use code like
String message =
"Program encountered an error." + "\n" +
"Type: " + t.getClass().getName() + "\n" +
"Message: " + t.getMessage() + "\n";
JOptionPane.showMessageDialog(frame, message, "SlideShow Error", JOptionPane.ERROR_MESSAGE);
As an alternative, using this class offers the following additional functionality:
Like typical Java GUI code, this class is not multithread safe:
it expects to only be called by EventQueue
's dispatch thread
.
This threading limitation is checked in every public method.
Nested Class Summary | |
---|---|
static class |
ThrowableDialog.UnitTest
See the Overview page of the project's javadocs for a general description of this unit test class. |
Nested classes/interfaces inherited from class javax.swing.JDialog |
---|
JDialog.AccessibleJDialog |
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 |
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 | |
---|---|
private String |
message
|
private Component |
owner
The Frame or Dialog that owns this instance; may be null. |
private static long |
serialVersionUID
|
private boolean |
showOnlyBasicInfo
|
private Throwable |
throwable
|
Fields inherited from class javax.swing.JDialog |
---|
accessibleContext, rootPane, rootPaneCheckingEnabled |
Fields inherited from class java.awt.Dialog |
---|
DEFAULT_MODALITY_TYPE |
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 | |
---|---|
ThrowableDialog(Dialog owner,
String title,
boolean modal,
String message,
Throwable throwable)
Constructs a new ThrowableDialog instance. |
|
ThrowableDialog(Frame owner,
String title,
boolean modal,
String message,
Throwable throwable)
Constructs a new ThrowableDialog instance. |
Method Summary | |
---|---|
protected JComponent |
buildButtons()
|
protected JComponent |
buildGui()
|
protected JComponent |
buildInfo()
|
String |
getMessage()
Accessor for the message field. |
Throwable |
getThrowable()
Accessor for the throwable field. |
protected void |
init(String title,
boolean modal,
String message,
Throwable throwable)
Initialization routine called by the 2 public constructors which contains code common to them. |
protected void |
playSound()
This implementation calls . |
protected void |
programExit()
This implementation calls . |
protected void |
refresh()
|
void |
setMessage(String message)
Mutator for the message field. |
void |
setThrowable(Throwable throwable)
Mutator for the throwable field. |
Methods inherited from class java.awt.Dialog |
---|
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setModalityType, setResizable, setTitle, setUndecorated, setVisible, show, toBack |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private static final long serialVersionUID
private final Component owner
private String message
private Throwable throwable
private boolean showOnlyBasicInfo
Constructor Detail |
---|
public ThrowableDialog(Dialog owner, String title, boolean modal, String message, Throwable throwable) throws IllegalArgumentException, IllegalStateException
owner
- the owner Dialog that this JDialog will be attached to; may be nulltitle
- the dialog's titlemodal
- specifies whether or not this JDialog is a modal dialogthrowable
- the Throwable to report
IllegalArgumentException
- if message is blank; throwable == null
IllegalStateException
- if calling thread is not EventQueue
's dispatch thread
public ThrowableDialog(Frame owner, String title, boolean modal, String message, Throwable throwable) throws IllegalArgumentException, IllegalStateException
owner
- the owner Frame that this JDialog will be attached to; may be nulltitle
- the dialog's titlemodal
- specifies whether or not this JDialog is a modal dialogthrowable
- the Throwable to report
IllegalArgumentException
- if message is blank; throwable == null
IllegalStateException
- if calling thread is not EventQueue
's dispatch thread
Method Detail |
---|
protected void init(String title, boolean modal, String message, Throwable throwable) throws IllegalArgumentException
IllegalArgumentException
- if message is blank; throwable == nullpublic String getMessage() throws IllegalStateException
IllegalStateException
- if calling thread is not EventQueue
's dispatch thread
public void setMessage(String message) throws IllegalArgumentException, IllegalStateException
IllegalArgumentException
- if message is blank
IllegalStateException
- if calling thread is not EventQueue
's dispatch thread
public Throwable getThrowable() throws IllegalStateException
IllegalStateException
- if calling thread is not EventQueue
's dispatch thread
public void setThrowable(Throwable throwable) throws IllegalArgumentException, IllegalStateException
IllegalArgumentException
- if throwable == null
IllegalStateException
- if calling thread is not EventQueue
's dispatch thread
protected void refresh()
protected JComponent buildGui()
protected JComponent buildInfo()
protected JComponent buildButtons()
protected void playSound()
Sounds.playErrorMinor()
.
Subclasses may override to play a different sound, or nothign at all.
protected void programExit()
System.exit
(1)
.
Subclasses may override to call a program specific shutdown sequence instead.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |