Java Programming20
Java Programming20
A table is a component that displays rows and columns of data. You can drag the cursor on
column boundaries to resize columns. You can also drag a column to a new position. Tables are
implemented by the JTable class, which extends JComponent.
One of its constructors is shown here:
JTable(Object data[ ][ ], Object colHeads[ ])
Here, data is a two-dimensional array of the information to be presented, and colHeads
is a one-dimensional array with the column headings.
Here are the steps for using a table in an applet:
The following example illustrates how to create and use a table. The content pane of the JApplet
object is obtained and a border layout is assigned as its layout manager.A one-dimensional array
of strings is created for the column headings. This table has three columns. A two-dimensional
array of strings is created for the table cells. You can see that each element in the array is an
array of three strings. These arrays are passed to the JTable constructor. The table is added to a
scroll pane and then the scroll pane is added to the content pane.
import java.awt.*;
import javax.swing.*;
/*
<applet code="JTableDemo" width=400
height=200> </applet>
*/
public class JTableDemo extends JApplet {
Event Handling is at the core of successful applet programming. Most events to which
your applet will respond are generated by the user. These events are passed to your applet in a
variety of ways, with the specific method depending upon the actual event. There are several
types of events. The most commonly handled events are those generated by the mouse, the
keyboard, and various controls, such as a push button. Events are supported by the
java.awt.event package
Events
In the delegation model, an event is an object that describes a state change in a source. It
can be generated as a consequence of a person interacting with the elements in a graphical user
interface. Some of the activities that cause events to be generated are pressing a button, entering
a character via the keyboard, selecting an item in a list, and clicking the mouse. Many other user
operations could also be cited as examples. Events may also occur that are not directly caused by
interactions with a user interface. For example, an event may be generated when a timer expires,
a counter exceeds a value, a software or hardware failure occurs, or an operation is completed.
You are free to define events that are appropriate for your application.
Event Sources
A source is an object that generates an event. This occurs when the internal state of that object
changes in some way. Sources may generate more than one type of event. A source must register
listeners in order for the listeners to receive notifications about a specific type of event. Each
type of event has its own registration method.
Here, Type is the name of the event and el is a reference to the event listener. When such an
event occurs, the registered listener is notified. This is known as unicasting the event.
A source must also provide a method that allows a listener to unregister an
interest in a specific type of event.
Event Classes
The classes that represent events are at the begin our study of event handling with a tour of the event classes.
As you will see, they provide a
consistent, easy-to-use means of encapsulating events.
At the root of the Java event class hierarchy is EventObject, which is in
java.util. It is the superclass for all events. Its one constructor is shown here:
EventObject(Object src)
Object getSource( )
int getID( )
Additional details about AWTEvent are provided at the end of Chapter 22. At this point, it is
important to know only that all of the other classes discussed in this section are subclasses of
AWTEvent.
To summarize:
The package java.awt.event defines several types of events that are generated by various user
interface elements. Table 20-1 enumerates the most important of these event classes and provides
a brief description of when they are generated. The most commonly used constructors and
methods in each class are described in the following sections.
Event Listeners
A listener is an object that is notified when an event occurs. It has two major requirements. First,
it must have been registered with one or more sources to receive notifications about specific
types of events. Second, it must implement methods to receive and process these notifications.
The methods that receive and process events are defined in a set of interfaces found in
java.awt.event. For example, the MouseMotionListener interface defines two methods to
receive notifications when the mouse is dragged or moved. Any object may receive and process
one or both of these events if it provides an implementation of this interface.
The modern approach to handling events is based on the delegation event model, which defines
standard and consistent mechanisms to generate and process events. Its conceptis quite simple: a
source generates an event and sends it to one or more listeners. In thisscheme, the listener simply
waits until it receives an event. Once received, the listener processes the event and then returns.
The advantage of this design is that the applicationlogic that processes events is cleanly
separated from the user interface logic that generates those events. A user interface element is
able to ―delegate‖ to theaseparateprocessingpieceofcode. of an event
In the delegation event model, listeners must register with a source in order to receive an event
notification. This provides an important benefit: notifications are sent only to listeners that want
to receive them. This is a more efficient way to handle events than the design used by the old
Java 1.0 approach. Previously, an event was propagated up the containment hierarchy until it was
handled by a component. This required components to receive events that they did not process,
and it wasted valuable time. The delegation event model eliminates this overhead.
There are eight types of mouse events. The MouseEvent class defines the following
integer constants that can be used to identify them: