- package com.sinosuperman.example;
-
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileReader;
- import java.io.IOException;
- import java.util.StringTokenizer;
- import java.util.TreeMap;
-
- import javax.swing.JOptionPane;
-
- public class PhoneNoteBook {
-
- private final File phoneNoteBookFile;
-
- private TreeMap<String, String> phoneNoteBookMap;
-
- public PhoneNoteBook(String fileName) throws IOException {
- phoneNoteBookMap = new TreeMap<String, String>();
- phoneNoteBookFile = new File(fileName);
- loadAllRecords();
- }
-
- private void loadAllRecords() throws IOException {
- BufferedReader reader = new BufferedReader(new FileReader(phoneNoteBookFile));
- String line = reader.readLine();
- while (line != null) {
- StringTokenizer str = new StringTokenizer(line, " ");
- String name = str.nextToken();
- String phone = str.nextToken();
- phoneNoteBookMap.put(name, phone);
- line = reader.readLine();
- }
- reader.close();
- }
-
- private void addRecord() {
- String name = JOptionPane.showInputDialog("Please enter the name:
");
- String phone = JOptionPane.showInputDialog("Please enter the phone:
");
- if (JOptionPane.showConfirmDialog(null, "Are you sure?") == JOptionPane.YES_OPTION) {
- phoneNoteBookMap.put(name, phone);
- } else {
- JOptionPane.showMessageDialog(null, "Operation has been canceled");
- }
- }
-
- private void updateRecord() {
- String name = JOptionPane.showInputDialog("Please enter the name:
");
- String phone = JOptionPane.showInputDialog("Please enter his/her new phone name:
");
- if (!phoneNoteBookMap.containsKey(name)) {
- if (JOptionPane.showConfirmDialog(null, "This name does not exist. Do you want to create a new one?") == JOptionPane.YES_OPTION) {
- phoneNoteBookMap.put(name, phone);
- } else {
- JOptionPane.showMessageDialog(null, "Operation has been canceled");
- }
- } if (JOptionPane.showConfirmDialog(null, "Are you sure to modify his/her phone number?") == JOptionPane.YES_OPTION) {
- phoneNoteBookMap.put(name, phone);
- } else {
- JOptionPane.showMessageDialog(null, "Operation has been canceled");
- }
- }
-
- private void searchRecord() {
- String name = JOptionPane.showInputDialog("Please the name for searching");
- if (phoneNoteBookMap.containsKey(name)) {
- JOptionPane.showMessageDialog(null, phoneNoteBookMap.get(name));
- } else {
- JOptionPane.showMessageDialog(null, "The name you are searching does not exists.");
- }
- }
-
- private void removeRecord() {
- String name = JOptionPane.showInputDialog("Please enter the name:
");
- if (!phoneNoteBookMap.containsKey(name)) {
- JOptionPane.showConfirmDialog(null, "This name does not exist. So you don"t need to remove it.");
- } else if (JOptionPane.showConfirmDialog(null, "Are you sure to remove his/her record?") == JOptionPane.YES_OPTION) {
- phoneNoteBookMap.remove(name);
- } else {
- JOptionPane.showMessageDialog(null, "Operation has been canceled");
- }
- }
-
- public void display() {
- String message = "Please select an operation:
" +
- "Enter "1" to add a new record;
" +
- "Enter "2" to update a existing record;
" +
- "Enter "3" to find a phone number;
" +
- "Enter "4" to remove a existing record.
";
-
- int choice = 0;
- try {
- choice = Integer.parseInt(JOptionPane.showInputDialog(message));
- switch (choice) {
- case 1:
- addRecord();
- break;
- case 2:
- updateRecord();
- break;
- case 3:
- searchRecord();
- break;
- case 4:
- removeRecord();
- break;
- default:
- }
- } catch (NumberFormatException e) {
- }
-
- if (JOptionPane.showConfirmDialog(null, "Would you want to continue?") != JOptionPane.YES_OPTION) {
- JOptionPane.showMessageDialog(null, "Thank you.");
- } else {
- display();
- }
- }
- }
|