public abstract class Program extends javax.swing.JApplet implements IOModel, java.lang.Runnable, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.KeyListener, java.awt.event.ActionListener
acm.program package. Its principal
role is to unify the concepts of applets and applications in a single
class, although it also provides applications with many other useful
facilities not traditionally available in applications.
In many programming environments, objects that are specific instances
of a Program subclass will run automatically without any
special action on your part. For maximum portability, you might want
to define a static main method as described in the comments
for the standard implementation of main.
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
CENTER
Constant specifying the center of the container
|
static java.lang.String |
EAST
Constant specifying the east edge of the container
|
static java.lang.String |
NORTH
Constant specifying the north edge of the container
|
static java.lang.String |
SOUTH
Constant specifying the south edge of the container
|
static java.lang.String |
WEST
Constant specifying the west edge of the container
|
| Modifier and Type | Method and Description |
|---|---|
void |
actionPerformed(java.awt.event.ActionEvent e)
Called when a component (typically a button) is activated.
|
void |
add(java.awt.Component comp,
java.lang.String region,
java.lang.Object constraints)
Adds the component to the specified border region with the indicated
constraints object.
|
void |
addActionListeners()
Adds the program as an
ActionListener to every button in
the structure that does not have a listener already. |
void |
addActionListeners(java.awt.event.ActionListener listener)
Adds the specified listener to every button in
the structure that does not have a listener already.
|
void |
addExitHook(java.lang.Object obj)
Requests that the program call the
exit method in the
specified object before exiting. |
void |
destroy()
Called when the program has been told to destroy itself.
|
void |
exit()
Exits from the program.
|
IOConsole |
getConsole()
Returns the console associated with this program.
|
IODialog |
getDialog()
Returns the dialog used for user interaction.
|
int |
getHeight()
Returns the height of the central region.
|
IOModel |
getInputModel()
Returns the
IOModel used for program input, which will
typically be either the default IOConsole or IODialog object. |
java.awt.LayoutManager |
getLayout()
Gets the layout manager for the central region of the content pane.
|
ProgramMenuBar |
getMenuBar()
Returns the menu bar associated with this program.
|
IOModel |
getOutputModel()
Returns the
IOModel used for program output, which will
typically be either the default IOConsole or IODialog object. |
java.lang.String |
getParameter(java.lang.String name)
Returns the parameter associated with name.
|
java.awt.Dimension |
getPreferredSize()
Returns the preferred size of the content pane.
|
java.io.BufferedReader |
getReader()
Returns a
BufferedReader whose input comes from the console. |
javax.swing.JPanel |
getRegionPanel(java.lang.String region)
Gets the
JPanel for the specified region. |
java.lang.String |
getTitle()
Gets the title of this program.
|
int |
getWidth()
Returns the width of the central region.
|
java.io.PrintWriter |
getWriter()
Returns a
PrintWriter whose output is directed to the console. |
void |
init()
The init method is called at startup time before the run method is
called.
|
boolean |
isAppletMode()
Returns
true if this program is running as an applet in a browser. |
void |
keyPressed(java.awt.event.KeyEvent e)
Called when a key is pressed.
|
void |
keyReleased(java.awt.event.KeyEvent e)
Called when a key is released.
|
void |
keyTyped(java.awt.event.KeyEvent e)
Called when a key is typed (i.e., pressed and released).
|
static void |
main(java.lang.String[] args)
Every application must either contain a "Main-Class" entry in its
manifest file or include a main method that looks like this, where
MyClass is the name of the program class:
|
void |
menuAction(java.lang.String cmd)
Called whenever an action event is detected in the menu bar.
|
void |
mouseClicked(java.awt.event.MouseEvent e)
Called when the mouse is clicked.
|
void |
mouseDragged(java.awt.event.MouseEvent e)
Called when the mouse is dragged with the button down.
|
void |
mouseEntered(java.awt.event.MouseEvent e)
Called when the mouse enters the source (which may be
either a component or a
GObject). |
void |
mouseExited(java.awt.event.MouseEvent e)
Called when the mouse exits the source (which may be
either a component or a
GObject). |
void |
mouseMoved(java.awt.event.MouseEvent e)
Called when the mouse is moved.
|
void |
mousePressed(java.awt.event.MouseEvent e)
Called when the mouse button is pressed.
|
void |
mouseReleased(java.awt.event.MouseEvent e)
Called when the mouse button is released.
|
void |
pause(double milliseconds)
Delays the calling thread for the specified time, which is expressed in
milliseconds.
|
void |
print(boolean x)
Makes sure that
print can display a boolean. |
void |
print(char x)
Makes sure that
print can display a char. |
void |
print(double x)
Makes sure that
print can display a double. |
void |
print(float x)
Makes sure that
print can display a float. |
void |
print(int x)
Makes sure that
print can display an int. |
void |
print(long x)
Makes sure that
print can display a long. |
void |
print(java.lang.Object x)
Makes sure that
print can display an Object. |
void |
print(java.lang.String value)
Displays the argument value on the console, leaving the cursor at the end of
the output.
|
void |
println()
Advances the console cursor to the beginning of the next line.
|
void |
println(boolean x)
Makes sure that
println can display a boolean. |
void |
println(char x)
Makes sure that
println can display a char. |
void |
println(double x)
Makes sure that
println can display a double. |
void |
println(float x)
Makes sure that
println can display a float. |
void |
println(int x)
Makes sure that
println can display an int. |
void |
println(long x)
Makes sure that
println can display a long. |
void |
println(java.lang.Object x)
Makes sure that
println can display an Object. |
void |
println(java.lang.String value)
Displays the argument value on the console and then advances the cursor
to the beginning of the next line.
|
boolean |
readBoolean()
Reads and returns a boolean value (
true or false). |
boolean |
readBoolean(java.lang.String prompt)
Prompts the user to enter a boolean value, which is returned as
the value of this method.
|
boolean |
readBoolean(java.lang.String prompt,
java.lang.String trueLabel,
java.lang.String falseLabel)
Prompts the user to enter a boolean value, which is matched against the
labels provided.
|
double |
readDouble()
Reads and returns a double-precision value from the user.
|
double |
readDouble(double low,
double high)
Reads and returns a double-precision value from the user, which is
constrained to be within the specified inclusive range.
|
double |
readDouble(java.lang.String prompt)
Prompts the user to enter an double-precision number, which is then
returned as the value of this method.
|
double |
readDouble(java.lang.String prompt,
double low,
double high)
Prompts the user to enter an double-precision number, which is then returned
as the value of this method.
|
int |
readInt()
Reads and returns an integer value from the user.
|
int |
readInt(int low,
int high)
Reads and returns an integer value from the user, which is constrained to
be within the specified inclusive range.
|
int |
readInt(java.lang.String prompt)
Prompts the user to enter an integer, which is then returned as the value
of this method.
|
int |
readInt(java.lang.String prompt,
int low,
int high)
Prompts the user to enter an integer, which is then returned as the value
of this method.
|
java.lang.String |
readLine()
Reads and returns a line of input from the console.
|
java.lang.String |
readLine(java.lang.String prompt)
Prompts the user for a line of input.
|
void |
remove(java.awt.Component comp)
Removes the specified component from the central region.
|
void |
remove(int index)
Removes the component at the specified index from the central region.
|
void |
removeAll()
Removes all components from the central region.
|
void |
repaint()
Forwards repaint to the content pane.
|
void |
run()
Contains the code to be executed for each specific program subclass.
|
void |
setBackground(java.awt.Color color)
Sets the background for the central region of the content pane.
|
void |
setConsole(IOConsole console)
Sets the console associated with this program.
|
void |
setLayout(java.awt.LayoutManager layout)
Sets the layout manager for the central region of the content pane.
|
void |
setTitle(java.lang.String title)
Sets the title of this program.
|
void |
showErrorMessage(java.lang.String msg)
Displays the error message in the standard output model.
|
void |
start()
Starts the program when it is running in application mode.
|
void |
start(java.lang.String[] args)
Starts the program using the specified argument list.
|
void |
validate()
Forwards validate to the content pane.
|
getAccessibleContext, getContentPane, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, repaint, setContentPane, setGlassPane, setJMenuBar, setLayeredPane, setTransferHandler, updategetAppletContext, getAppletInfo, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameterInfo, isActive, isValidateRoot, newAudioClip, play, play, resize, resize, setStub, showStatus, stopadd, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getListeners, getMaximumSize, getMinimumSize, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycleaction, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, dispatchEvent, enable, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, requestFocus, requestFocusInWindow, reshape, revalidate, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCyclepublic static final java.lang.String NORTH
public static final java.lang.String SOUTH
public static final java.lang.String EAST
public static final java.lang.String WEST
public static final java.lang.String CENTER
public void run()
run so that it contains the code for your application.run in interface java.lang.Runnablepublic void init()
init method. This method is used only for certain styles
of application development that have their roots in the applet world;
other styles will not ordinarily use or override this method.init in class java.applet.Appletpublic void print(java.lang.String value)
print method is overloaded so that
value can be of any type.public final void print(boolean x)
print can display a boolean.public final void print(char x)
print can display a char.public final void print(double x)
print can display a double.public final void print(float x)
print can display a float.public final void print(int x)
print can display an int.public final void print(long x)
print can display a long.public final void print(java.lang.Object x)
print can display an Object.public void println()
public void println(java.lang.String value)
println method is
overloaded so that value can be of any type.public final void println(boolean x)
println can display a boolean.public final void println(char x)
println can display a char.public final void println(double x)
println can display a double.public final void println(float x)
println can display a float.public final void println(int x)
println can display an int.public final void println(long x)
println can display a long.public final void println(java.lang.Object x)
println can display an Object.public void showErrorMessage(java.lang.String msg)
showErrorMessage in interface IOModelmsg - The error msg to be displayedpublic final java.lang.String readLine()
public java.lang.String readLine(java.lang.String prompt)
public final int readInt()
setExceptionOnError method.public final int readInt(int low,
int high)
setExceptionOnError method.public final int readInt(java.lang.String prompt)
setExceptionOnError method.public int readInt(java.lang.String prompt,
int low,
int high)
low and high. If the user types a value that
is not a legal integer or is outside the specified range, the method
ordinarily offers the user a chance to reenter the data,
although this behavior can be changed using the
setExceptionOnError method.public final double readDouble()
setExceptionOnError method.readDouble in interface IOModeldoublepublic final double readDouble(double low,
double high)
setExceptionOnError method.readDouble in interface IOModellow - The lowest value in the permitted rangehigh - The highest value in the permitted rangedoublepublic final double readDouble(java.lang.String prompt)
setExceptionOnError method.readDouble in interface IOModelprompt - The prompt string to display to the userdoublepublic double readDouble(java.lang.String prompt,
double low,
double high)
low and high. If the user types a value
that is not a legal number, the method ordinarily offers the user a chance
to reenter the data, although this behavior can be changed using the
setExceptionOnError method.readDouble in interface IOModelprompt - The prompt string to display to the userlow - The lowest value in the permitted rangehigh - The highest value in the permitted rangedoublepublic final boolean readBoolean()
true or false).
The input must match one of these strings, ignoring case. If the user
types a value that is not one of these possibilities, the method ordinarily
offers the user a chance to reenter the data, although this behavior
can be changed using the
setExceptionOnError method.readBoolean in interface IOModelpublic final boolean readBoolean(java.lang.String prompt)
setExceptionOnError method.readBoolean in interface IOModelprompt - The prompt string to display to the userpublic boolean readBoolean(java.lang.String prompt,
java.lang.String trueLabel,
java.lang.String falseLabel)
readBoolean ordinarily offers the user a chance
to reenter the data, although this behavior can be changed using the
setExceptionOnError method.readBoolean in interface IOModelprompt - The prompt string to display to the usertrueLabel - The string used to indicate truefalseLabel - The string used to indicate falsepublic boolean isAppletMode()
true if this program is running as an applet in a browser.true if this program is running as an applet, false otherwisepublic void setConsole(IOConsole console)
console - The IOConsole object used for this programpublic IOConsole getConsole()
IOConsole object used for this programpublic IODialog getDialog()
IODialog object used for this programpublic IOModel getInputModel()
IOModel used for program input, which will
typically be either the default IOConsole or IODialog object.IOModel used for program inputpublic IOModel getOutputModel()
IOModel used for program output, which will
typically be either the default IOConsole or IODialog object.IOModel used for program outputpublic java.io.BufferedReader getReader()
BufferedReader whose input comes from the console.Reader for use with this consolepublic java.io.PrintWriter getWriter()
PrintWriter whose output is directed to the console.PrintWriter for use with this consolepublic javax.swing.JPanel getRegionPanel(java.lang.String region)
JPanel for the specified region.region - The region of the window (NORTH, SOUTH,
EAST, WEST, or CENTER)JPanel for that subregionpublic void add(java.awt.Component comp,
java.lang.String region,
java.lang.Object constraints)
comp - The component to be addedregion - The region of the window (NORTH, SOUTH,
EAST, WEST, or CENTER)constraints - The constraints objectpublic void addActionListeners()
ActionListener to every button in
the structure that does not have a listener already.public void addActionListeners(java.awt.event.ActionListener listener)
listener - The ActionListener to be addedpublic void setTitle(java.lang.String title)
title - The title for this programpublic java.lang.String getTitle()
public ProgramMenuBar getMenuBar()
createMenuBar factory method.public void start(java.lang.String[] args)
args - An array of strings passed to the programpublic void exit()
super.exit() at the end of their processing.public void addExitHook(java.lang.Object obj)
exit method in the
specified object before exiting.public void pause(double milliseconds)
Thread.sleep, this method never throws an
exception.milliseconds - The sleep time in millisecondspublic void mouseClicked(java.awt.event.MouseEvent e)
mouseClicked
is always preceded by both a mousePressed and a
mouseReleased event for the same source.mouseClicked in interface java.awt.event.MouseListenerpublic void mousePressed(java.awt.event.MouseEvent e)
mousePressed in interface java.awt.event.MouseListenerpublic void mouseReleased(java.awt.event.MouseEvent e)
mouseReleased in interface java.awt.event.MouseListenerpublic void mouseEntered(java.awt.event.MouseEvent e)
GObject).mouseEntered in interface java.awt.event.MouseListenerpublic void mouseExited(java.awt.event.MouseEvent e)
GObject).mouseExited in interface java.awt.event.MouseListenerpublic void mouseMoved(java.awt.event.MouseEvent e)
mouseMoved in interface java.awt.event.MouseMotionListenerpublic void mouseDragged(java.awt.event.MouseEvent e)
mouseDragged call is always preceded by a
mousePressed call for the same source. If the
mouse is pressed elsewhere and then enters a source with
the button down, no drag event occurs. Moreover, once the
mouse button goes down in a particular source, only that
source will receive mouse events until the button goes up.
Those events, moreover, are reported even in the mouse
travels outside the domain of the object.mouseDragged in interface java.awt.event.MouseMotionListenerpublic void keyTyped(java.awt.event.KeyEvent e)
keyTyped in interface java.awt.event.KeyListenerpublic void keyPressed(java.awt.event.KeyEvent e)
keyPressed in interface java.awt.event.KeyListenerpublic void keyReleased(java.awt.event.KeyEvent e)
keyReleased in interface java.awt.event.KeyListenerpublic void actionPerformed(java.awt.event.ActionEvent e)
actionPerformed in interface java.awt.event.ActionListenerpublic java.awt.Dimension getPreferredSize()
getPreferredSize in class java.awt.Containerpublic int getWidth()
getWidth in class java.awt.Componentpublic int getHeight()
getHeight in class java.awt.Componentpublic java.lang.String getParameter(java.lang.String name)
getParameter in class java.applet.Appletname - The name of the parameternull if nonepublic void setLayout(java.awt.LayoutManager layout)
setLayout in class javax.swing.JAppletlayout - The layout manager to usepublic java.awt.LayoutManager getLayout()
getLayout in class java.awt.Containerpublic void setBackground(java.awt.Color color)
setBackground in class java.awt.ComponentThe - new background colorpublic void remove(int index)
remove in class java.awt.Containerindex - The index position of the component to removepublic void remove(java.awt.Component comp)
remove in class javax.swing.JAppletcomp - The component to removepublic void removeAll()
removeAll in class java.awt.Containerpublic void validate()
validate in class java.awt.Containerpublic void repaint()
repaint in class java.awt.Componentpublic final void start()
start method in Applet and therefore
will be called as part of applet startup.start in class java.applet.Appletpublic void destroy()
destroy in class java.applet.Appletpublic static void main(java.lang.String[] args)
MyClass is the name of the program class:
public static void main(String[] args)
{
new MyClass().start();
}
If the program needs the command line arguments, the args array
can be passed to the start method and then retrieved using
the getArgumentArray method.
args - An array of string argumentspublic void menuAction(java.lang.String cmd)