⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addressbook.java

📁 Java程序设计技巧与开发实例附书源代码。
💻 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 + -