📄 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();
setSize(700, 300);
WCenterlization wc = new WCenterlization(this);
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);
display.setBackground(Color.DARK_GRAY);
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);
WCenterlization wc = new WCenterlization(this);
}
public static void main(String args[])
{
AddressBook book = new AddressBook();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -