AddressBook code
import java.awt.*;
class AddressBook extends Frame {
public static void main(String argv[])
{
new AddressBook();
}
AddressBook()
{
Container labelPanel, textPanel;
InfoPanel infoPanel = new InfoPanel();
AddressList list = new AddressList(infoPanel);
add("West", list);
add("Center", infoPanel);
resize(500, 200);
show();
}
}
class InfoPanel extends Panel {
final int TextWidth = 40;
final int TextHeight = 6;
TextField nameT;
TextField phoneT;
TextArea addressT;
InfoPanel()
{
GridBagLayout gridbag = new GridBagLayout();
setLayout(gridbag);
GridBagConstraints c = new GridBagConstraints();
c.weightx = 0.0;
c.anchor = GridBagConstraints.EAST;
GridBagConstraints c2 = new GridBagConstraints();
c2.gridwidth = GridBagConstraints.REMAINDER;
c2.weightx = 1.0;
c2.fill = GridBagConstraints.HORIZONTAL;
Label nameL = new Label("Name");
nameT = new TextField(TextWidth);
Label phoneL = new Label("Phone");
phoneT = new TextField(TextWidth);
Label addressL = new Label("Snail Mail Address");
addressT = new TextArea(TextHeight, TextWidth);
add(nameL);
add(nameT);
add(phoneL);
add(phoneT);
add(addressL);
add(addressT);
gridbag.setConstraints(nameL, c);
gridbag.setConstraints(nameT, c2);
gridbag.setConstraints(phoneL, c);
gridbag.setConstraints(phoneT, c2);
gridbag.setConstraints(addressL, c);
gridbag.setConstraints(addressT, c2);
}
public void setName(String name) {
nameT.setText(name);
}
public void setPhone(String phone) {
phoneT.setText(phone);
}
public void setAddress(String address) {
addressT.setText(address);
}
}
class SelectList extends List {
public boolean handleEvent(Event evt) {
switch (evt.id) {
case Event.LIST_SELECT:
return selected(evt,
((List) evt.target).getSelectedIndex(),
((List) evt.target).getSelectedItem());
case Event.LIST_DESELECT:
return deselected(evt,
((List) evt.target).getSelectedIndex());
default:
return super.handleEvent(evt);
}
}
public boolean selected(Event evt, int index, String item) {
return false;
}
public boolean deselected(Event evt, int index) {
return false;
}
}
class Address {
protected String name;
protected String phone;
protected String address;
Address(String n, String p, String a) {
name = n;
phone = p;
address = a;
}
public String getName() {
return name;
}
public String getPhone() {
return phone;
}
public String getAddress() {
return address;
}
}
class AddressList extends SelectList {
protected Address list[] = new Address[4];
private InfoPanel info;
AddressList(InfoPanel infoPanel) {
info = infoPanel;
// these should be loaded from a file - just lazy
list[0] = new Address("Jan Newmarch",
"201 2422",
"Faculty of ISE\n" +
"Uni of Canberra");
this.addItem(list[0].getName());
list[1] = new Address("Terry Webb",
"201 5341",
"Faculty of ISE\n" +
"Uni of Canberra");
this.addItem(list[1].getName());
}
public boolean selected(Event evt, int index, String item) {
Address addr = list[index];
info.setName(item);
info.setPhone(addr.getPhone());
info.setAddress(addr.getAddress());
return true;
}
}
Slide 46