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

📄 addressbookmidlet.java

📁 Adressbook管理是手机联系人的管理功能模块.
💻 JAVA
字号:
package AddressBook;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
import javax.microedition.rms.*;
import java.util.Vector;
import javax.microedition.io.*;
import java.util.Enumeration;

/**AddressBookMIDlet.java
 * 演示如何使用RMS中记录存储的管理
 * 记录的管理和记录的查询排序
 * 结合lcdui界面库使用GUI来操作RMS
 */
public class AddressBookMIDlet extends MIDlet implements CommandListener{
    private Display display=null;            //声明Display变量
    Command search=null;                     //声明查询按钮
    Command quit=null;                       //声明关闭按钮
    Command delete=null;                     //声明删除按钮
    Command addnow=null;                     //声明增加按钮
    Command edit=null;                       //声明修改按钮
    Command mainmenu=null;                   //声明主菜单按钮


    List menu=null;                          //声明列表菜单
    Form ui_form=null;                       //声明Form容器
    StringItem si=null;                      //条目字符串
    TextField name=null;                     //声明输入名字的TextField
    TextField phone=null;                    //声明输入电话号码的TextField
    TextField nameForEdit=null;              //声明输入需要修改的名字的TextField


    RecordStore recordStore=null;            //声明记录存储



    public AddressBookMIDlet() {             //构造函数,执行必要的初始化工作
        //用户界面初始化
        display=Display.getDisplay(this);
        quit=new Command("关闭",Command.SCREEN,3);
        search=new Command("查询",Command.SCREEN,2);
        delete=new Command("删除",Command.SCREEN,2);
        addnow=new Command("增加",Command.SCREEN,2);
        edit=new Command("修改",Command.SCREEN,2);
        mainmenu=new Command("主菜单",Command.SCREEN,2);

        //记录存储初始化
        try{
            recordStore=RecordStore.openRecordStore("addresses",true);
        }catch(RecordStoreException rse){
            rse.printStackTrace();
        }
    }

    //startApp,设置菜单选项及其监听
    public void startApp() {
        menu=new List("电话本...",List.IMPLICIT);
        menu.append("1.查询",null);
        menu.append("2.增加",null);
        menu.append("3.删除",null);
        menu.append("4.修改",null);
        menu.append("5.关闭",null);

        menu.setCommandListener(this);
        display.setCurrent(menu);
    }

    //查询用户界面
    void searchScreen(){
        ui_form=new Form("电话本查询");

        name=new TextField("查询姓名","",50,0);
        ui_form.append(name);

        ui_form.addCommand(search);
        ui_form.addCommand(mainmenu);

        ui_form.setCommandListener(this);

        display.setCurrent(ui_form);

    }


    //增加记录的用户界面
    void addScreen(){
        ui_form=new Form("添加");

        name=new TextField("姓名","",50,0);
        ui_form.append(name);

        phone=new TextField("电话号码","",50,0);
        ui_form.append(phone);

        ui_form.addCommand(addnow);
        ui_form.addCommand(mainmenu);

        ui_form.setCommandListener(this);

        display.setCurrent(ui_form);

    }


    //修改记录的用户界面
    void editScreen(){
        ui_form=new Form("修改");

        nameForEdit=new TextField("需要修改的姓名","",50,0);
        ui_form.append(nameForEdit);

        name=new TextField("姓名","",50,0);
        ui_form.append(name);

        phone=new TextField("电话号码","",50,0);
        ui_form.append(phone);

        ui_form.addCommand(edit);
        ui_form.addCommand(mainmenu);

        ui_form.setCommandListener(this);

        display.setCurrent(ui_form);

    }

    //删除一条记录的用户界面
    void deleteScreen(){
        ui_form=new Form("删除");

        name=new TextField("姓名","",50,0);
        ui_form.append(name);



        ui_form.addCommand(delete);
        ui_form.addCommand(mainmenu);

        ui_form.setCommandListener(this);

        display.setCurrent(ui_form);

    }



    //pauseApp 重置menu
    public void pauseApp() {
        menu=null;
    }

    //destroyApp 关闭应用程序
    public void destroyApp(boolean unconditional) {
        menu=null;
        notifyDestroyed();
    }

    //事件处理
    public void commandAction(Command c,Displayable d){
        if(c==quit){                          //按下关闭按钮,触发相应事件处理
            try{
                close();                      //关闭记录存储
            }catch(RecordStoreException rse){
                rse.printStackTrace();        //销毁应用程序,触发相应事件处理
            }
            destroyApp(true);
        }
        else if(c==search){                   //按下查询按钮,触发相应事件处理
            String temp_search=name.getString();   //获取要查询的姓名
            address_search(temp_search);      //调用查询方法
        }
        else if(c==edit){                     //按下编辑按钮,触发相应事件处理
            String temp_nameForEdit=nameForEdit.getString();
            String temp_name=name.getString();
            String temp_phone=phone.getString();

            address_edit(temp_nameForEdit,temp_name,temp_phone);   //调用修改方法
        }
        else if(c==mainmenu){                 //按下主菜单,触发相应事件处理
            startApp();                       //重置
        }
        else if(c==delete){                   //按下删除按钮,触发相应事件处理
            String temp_delete=name.getString();  //获取要删除的姓名
            address_del(temp_delete);         //调用删除方法
        }
        else if(c==addnow){                   //按下增加按钮,触发相应事件处理
            String temp_name=name.getString();  //获取增加的姓名
            String temp_phone=phone.getString();//获取增加的电话号码
            address_add(temp_name,temp_phone);  //调用增加方法
        }
        else{                                   //其他事件,根据list选项调用各界面
            List down=(List)display.getCurrent();
            switch(down.getSelectedIndex()){
            case 0: searchScreen();break;
            case 1: addScreen();break;
            case 2: deleteScreen();break;
            case 3: editScreen();break;
            case 4: destroyApp(true);break;
            }

        }



    }

    //查询方法
    void address_search(String address){
        String temp="";
        String phone_number;
        String person_name;
        String check_name;
        int size=address.length();

        try{
            RecordEnumeration re=recordStore.enumerateRecords(null,null,false);
            ui_form=new Form("查询结果");

            while(re.hasNextElement()){
                String name1=new String(re.nextRecord());
                try{
                    person_name=name1.substring(0,name1.indexOf("?"));
                }catch(Exception ef){
                    person_name="请检查姓名是否正确";
                    ef.printStackTrace();
                }
                if(person_name.length()>=size){
                    check_name=person_name.substring(0,size);

                    if(check_name.equals(address)){
                        try{
                            phone_number=name1.substring(name1.indexOf("?")+1);
                        }catch(Exception e){
                            phone_number="";
                        }
                        temp=temp+"\n姓名.."+person_name+"\n电话.."+phone_number;
                    }
                }
            }
            if(temp.equals("")){
                temp="没有找到......";
            }
            ui_form.append(temp);

            ui_form.addCommand(quit);
            ui_form.addCommand(mainmenu);

            ui_form.setCommandListener(this);
            display.setCurrent(ui_form);
        }catch(RecordStoreNotOpenException rsnoe){
            rsnoe.printStackTrace();
        }catch(InvalidRecordIDException irid){
            irid.printStackTrace();
        }catch(RecordStoreException rse){
            rse.printStackTrace();
        }

    }


    //删除方法
    void address_del(String address){
        String temp="";
        String phone_number;
        String person_name;
        int id;
        int del_id=0;
        try{
            RecordEnumeration re=recordStore.enumerateRecords(null,null,false);
            ui_form=new Form("删除结果");

            while(re.hasNextElement()){
                id=re.nextRecordId();
                String name1=new String(recordStore.getRecord(id));
                try{
                    person_name=name1.substring(0,name1.indexOf("?"));
                }catch(Exception ef){
                    person_name="请检查姓名是否正确";
                }

                if(person_name.equals(address)){
                    del_id=id;
                }
            }
            if(del_id!=0){
                recordStore.deleteRecord(del_id);
                temp="成功删除一条记录";
            }else{
                temp="所指定的记录不在电话本内";
            }
        }catch(Exception e){
        }
        ui_form.append(temp);

        ui_form.addCommand(quit);
        ui_form.addCommand(mainmenu);

        ui_form.setCommandListener(this);
        display.setCurrent(ui_form);



    }

    //修改方法
    void address_edit(String addressForEdit,String address,String phone){
        int id=1;
        int edit_id=0;
        String person_name;
        String temp="error";
        try{
            RecordEnumeration re=recordStore.enumerateRecords(null,null,false);
            ui_form=new Form("修改");
            while(re.hasNextElement()){
                id=re.nextRecordId();
                String name1=new String(recordStore.getRecord(id));
                try{
                    person_name=name1.substring(0,name1.indexOf("?"));
                }catch(Exception ef){
                    person_name="请检查姓名是否正确";
                }

                if(person_name.equals(addressForEdit)){
                    edit_id=id;
                }
            }
            if(edit_id!=0){
                String data=address+"?"+phone;
                byte[] b_data=data.getBytes();
                recordStore.setRecord(edit_id,b_data,0,b_data.length);
                temp="成功修改一条记录";
            }else{
                temp="要修改的记录不在电话本内";
            }


        }catch(Exception e){
            e.printStackTrace();
        }
        ui_form.append(temp);

        ui_form.addCommand(quit);
        ui_form.addCommand(mainmenu);

        ui_form.setCommandListener(this);
        display.setCurrent(ui_form);

    }

    //增加方法
    void address_add(String address,String phone){
        String data=address+"?"+phone;
        System.out.print(data);
        try{
            byte[] b=data.getBytes();

            recordStore.addRecord(b,0,b.length);

            ui_form=new Form("添加成功");
            ui_form.append("成功添加一条记录");

            ui_form.addCommand(quit);
            ui_form.addCommand(mainmenu);

            ui_form.setCommandListener(this);
            display.setCurrent(ui_form);


        }catch(RecordStoreException rse){
            rse.printStackTrace();
        }
    }

    //关闭记录存储
    public void close()throws RecordStoreNotOpenException,RecordStoreException{
        recordStore.closeRecordStore();
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -