📄 addressbook.java
字号:
import java.awt.*;
import java.awt.event.*;
public class AddressBook
extends Frame
implements ActionListener, ItemListener {
private List book = new List();
private java.awt.List addresses = new java.awt.List();
private MenuItem fileExit = new MenuItem("Exit");
private MenuItem toolAddPrivate = new MenuItem("Private Address");
private MenuItem toolAddPublic = new MenuItem("Public Address");
private MenuItem toolDel = new MenuItem("Delete Address");
private MenuItem toolShow = new MenuItem("Show Address");
private AddressDisplay display = new AddressDisplay();
private AddressDialog dialog = null;
private Address address = null;
private class WindowCloser
extends WindowAdapter {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
}
public AddressBook() {
super("Address Book");
setup();
fileExit.addActionListener(this);
toolAddPrivate.addActionListener(this);
toolAddPublic.addActionListener(this);
toolDel.addActionListener(this);
toolShow.addActionListener(this);
addresses.addActionListener(this);
addresses.addItemListener(this);
addWindowListener(new WindowCloser());
pack();
show();
}
public void itemStateChanged(ItemEvent e) {
if (addresses.getSelectedIndex() >= 0) {
handleShow();
}
}
public void actionPerformed(ActionEvent e) {
Object target = e.getSource();
if (target == fileExit) {
System.exit(0);
}
else if (target == toolDel) {
handleDel();
}
else if (target == toolAddPrivate) {
handleAdd(new PrivateAddress());
}
else if (target == toolAddPublic) {
handleAdd(new Address());
}
else if ( ( (target == toolShow) || (target == addresses)) &&
(addresses.getSelectedIndex() >= 0)) {
handleEdit();
}
}
private void handleEdit() {
int pos = addresses.getSelectedIndex();
address = (Address) book.get(pos);
dialog = new AddressDialog(this, address);
if (dialog.isOkay) {
address.setAddress(dialog.getData());
addresses.replaceItem(address.toString(), pos);
display.setText(address);
validate();
}
}
private void handleAdd(Address newAddress) {
dialog = new AddressDialog(this, newAddress);
if (dialog.isOkay) {
newAddress.setAddress(dialog.getData());
addresses.add(newAddress.toString());
book.add(newAddress);
}
}
private void handleDel() {
if (addresses.getSelectedIndex() >= 0) {
book.delete(addresses.getSelectedIndex());
addresses.remove(addresses.getSelectedIndex());
}
}
private void handleShow() {
address = (Address) book.get(addresses.getSelectedIndex());
display.setText(address);
validate();
}
private void setup() {
Menu file = new Menu("File");
file.add(fileExit);
Menu edit = new Menu("Edit");
Menu toolAdd = new Menu("Add Address");
toolAdd.add(toolAddPrivate);
toolAdd.add(toolAddPublic);
Menu tools = new Menu("Tools");
tools.add(toolAdd);
tools.addSeparator();
tools.add(toolDel);
tools.add(toolShow);
MenuBar bar = new MenuBar();
bar.add(file);
bar.add(edit);
bar.add(tools);
setMenuBar(bar);
ScrollPane scroller = new ScrollPane();
scroller.add(display);
setLayout(new GridLayout(1, 2));
add(addresses);
add(scroller);
}
public static void main(String args[]) {
AddressBook book = new AddressBook();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -