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

📄 groupmanager.java

📁 J2ME程序设计实例教程的源码
💻 JAVA
字号:
import javax.microedition.pim.*;
import javax.microedition.lcdui.*;

/**
 * GroupManager类是个名片分组管理器,可以添加、删除名片组。还可以浏览组内的名片。
 */
public class GroupManager extends MicroComponent implements CommandListener {
    //
    private Cardcase cardcase;      //名片盒
    private CardcaseMIDlet midlet;  //
    private Display display;
    private Displayable backScreen; //返回屏幕
    private List groupListView;     //名片组列表视图
    private TextBox tbGroupName;    //名片组名输入视图
    private Form delForm;           //删除名片组,提示用户是否删除组中的所有名片
    
    private Command cmdBack = new Command("返回", Command.BACK, 1);
    private Command cmdSelect = new Command("查看", Command.ITEM, 2);
    private Command cmdNew = new Command("新建", Command.SCREEN, 3);
    private Command cmdDelete = new Command("删除", Command.SCREEN, 4);
    private Command cmdOK = new Command("确定", Command.OK, 1);
    private Command cmdCancel = new Command("取消", Command.CANCEL, 2);
    
    //构造方法
    public GroupManager(Cardcase cardcase, CardcaseMIDlet midlet, Displayable backScreen) {
        this.cardcase = cardcase;
        this.midlet = midlet;
        display = Display.getDisplay(midlet);
        this.backScreen = backScreen;
        
        //创建名片组列表视图
        groupListView = new List("名片组", Choice.IMPLICIT);
        groupListView.addCommand(cmdBack);
        groupListView.addCommand(cmdNew);
        groupListView.setCommandListener(this);
        
        //创建名片组名输入视图
        tbGroupName = new TextBox("请输入组名:", "", 40, TextField.ANY);
        tbGroupName.addCommand(cmdOK);
        tbGroupName.addCommand(cmdCancel);
        tbGroupName.setCommandListener(this);
    }
    
    //显示名片组列表视图
    public void show() {
        updateView();
        display.setCurrent(groupListView);
    }
    
    //更新列表视图
    public void updateView() {
        groupListView.deleteAll();  //清除
        
        String[] categories = new String[0];
        try {//获取所有的名片组
            categories = cardcase.getCategories();
        }
        catch(PIMException pime) {
            midlet.showError("名片分组管理错误!原因:\n" + pime.toString());
        }
        for(int i=0; i<categories.length; i++) {
            groupListView.append(categories[i], null);
        }
        if(groupListView.size() > 0) {
            groupListView.addCommand(cmdDelete);
            groupListView.setSelectCommand(cmdSelect);
        }
        else {
            groupListView.removeCommand(cmdDelete);
            groupListView.removeCommand(cmdSelect);
        }
    }
    
    //处理视图上的命令,响应用户操作
    public void commandAction(Command cmd, Displayable d) {
        if(cmd == cmdBack) {
            midlet.backToMainMenu();
        }
        else if(cmd == cmdSelect) { //查看组内的名片
            int index = groupListView.getSelectedIndex();
            String name = groupListView.getString(index);
            //创建组名片管理器
            GroupCardManager cardList = new GroupCardManager(cardcase, name, midlet, this);
            cardList.show();
        }
        else if(cmd == cmdNew)  {
            display.setCurrent(tbGroupName);
        }
        else if(cmd == cmdDelete) { //删除名片组
            if(delForm == null) {
                createDelForm();
            }
            display.setCurrent(delForm);
        }
        else if(cmd == cmdOK) { //创建名片组
            String name = tbGroupName.getString();
            try {
                if(name.trim().length()>0) {
                    cardcase.addCategory(name);
                    updateView();
                }
            }
            catch(PIMException pime) {
                midlet.showError("创建名片组" + name +"错误!\n原因:" + pime.toString());
            }
            display.setCurrent(groupListView);
        }
        else if(cmd == cmdCancel) {
            display.setCurrent(groupListView);
        }
    }
    
    //创建删除名片组的视图
    public void createDelForm() {
        delForm = new Form("删除名片组");
        ChoiceGroup cgItem = new ChoiceGroup("是否删除组中的所有名片?", Choice.EXCLUSIVE);
        delForm.append(cgItem);
        cgItem.append("  是", null);
        cgItem.append("  否", null);
        cgItem.setDefaultCommand(new Command("确定", Command.OK, 1));
        cgItem.setItemCommandListener(new ItemCommandListener() {
            public void commandAction(Command cmd, Item item) {
                ChoiceGroup cg = (ChoiceGroup)item;
                String name = groupListView.getString(groupListView.getSelectedIndex());
                try {
                    boolean boo = cg.isSelected(0);
                    cardcase.deleteCategory(name, boo);
                }
                catch(PIMException pime) {
                    System.out.println("deleteCategory is error. \n" + pime.toString());
                }
                show();
            }
        });
    }
}

⌨️ 快捷键说明

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