Java Reference
In-Depth Information
17.4.1
Button events
To the left in Fig. 17.13 is a
JFrame
with two buttons. The east button is enabled,
so pressing it will cause an action to be performed; the west button is disabled
and appears grayed out. Clicking the east button disables it and enables the west
button, changing the
JFrame
into the state shown to the right in Fig. 17.13. Then,
clicking the west button disables it and enables the east button again.
The
JFrame
in Fig. 17.13 is an instance of class
ButtonDemo1
of Fig. 17.14.
We show you how this class accomplishes its task in two steps. First, we show
the part that lays out the
JFrame
; second, we show how to make the buttons
lis-
ten
to mouse clicks. Note that the class contains a statement to import classes of
package
java.awt.event
; some of these classes are used in listening to events.
Activity
17-4.1
Obtain the
class of Fig.
17.13 from les-
son page 17-4.
import
javax.swing.*;
import
java.awt.*;
import
java.awt.event.*;
public class
ButtonDemo1
extends
JFrame
implements
ActionListener {
//
Class invariant: exactly one of
eastButton
and
westButton
is enabled
private
JButton westButton=
new
JButton("west");
private
JButton eastButton=
new
JButton("east");
/**
Constructor: invisible frame with title
t
and 2 buttons
*/
public
ButtonDemo1(String t) {
super
(t);
Container cp= getContentPane();
cp.add(westButton, BorderLayout.WEST);
cp.add(eastButton, BorderLayout.EAST);
westButton.setEnabled(
false
);
eastButton.setEnabled(
true
);
westButton.addActionListener(
this
);
eastButton.addActionListener(
this
);
pack();
}
/**
Process a click of a button
*/
public void
actionPerformed(ActionEvent e) {
boolean
b= eastButton.isEnabled();
eastButton.setEnabled(!b);
westButton.setEnabled(b);
}
}
Figure 17.14:
Listening to buttons
Search WWH ::
Custom Search