/*
Chapter 6.2:
Java Telephone
Programmer:
Brad Shedd
Date:
July 17, 2006
Filename:
Telephone.java
Purpose:
This Program creates a telephone keypad.
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
public
class
Telephone
extends Frame
implements
ActionListener
{
private
Button keys[];
private
Panel keypad;
private
TextField lcd;
private
Label lbl;
private
boolean foundKey;
public
Telephone()
{
//construct
components and initialize beginning values
lcd =
new
TextField (20);
lcd.setEditable(false);
keypad =
new
Panel();
keys =
new
Button[12];
lbl =
new
Label("Click each button above to dial your number");
//background
color
setBackground(Color.magenta);
//construct
and assing captions to the Buttons
for(int
i=0; i<=9; i++)
keys[i] =
new
Button(String.valueOf(i));
keys[10] =
new
Button("*");
keys[11] =
new
Button("#");
//set Frame
and keypad layout to grid layout
setLayout(new
BorderLayout());
keypad.setLayout(new
GridLayout(4,3,10,10));
for
(int i=1; i<=3; i++)
// 1,2,3
keypad.add(keys[i]);
for
(int i=4; i<=6; i++)
//4, 5, 6
keypad.add(keys[i]);
for
(int i=7; i<=9; i++)
//1, 2, 3
keypad.add(keys[i]);
keypad.add(keys[10]);
// *
keypad.add(keys[0]);
// 0key
keypad.add(keys[11]);
// #
for
(int i=0; i<keys.length; i++)
keys[i].addActionListener(this);
add(lcd,
BorderLayout.NORTH);
add(keypad,
BorderLayout.CENTER);
add(lbl,
BorderLayout.SOUTH);
addWindowListener(
new
WindowAdapter()
{
public
void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
}
// end of
constructor method
public
void actionPerformed(ActionEvent e)
{
//test for
button clicks
foundKey =
false;
//search for the clicked key
for
(int i=0; i<keys.length &&
!foundKey; i++)
{
if(e.getSource()
== keys[i])
{
foundKey=true;
switch(i)
{
// keys
case
0:
case 1:
case
2:
case 3:
case
4:
case 5:
case
6:
case 7:
case
8:
case 9:
case
10:
case 11:
lcd.setText(lcd.getText() + keys[i].getLabel());
break;
}
//end switch
}
//end if
}
}//end
actionperformed
public
static
void
main(String args[])
{
//
set frame properties
Telephone f =
new
Telephone();
f.setTitle("Telephone");
f.setBounds(50,130,250,300);
f.setVisible(true);
}//end
main
}// end class