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

📄 ecsmidlet.java

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

/**
 * 应用程序的主类
 */
public class ECSMIDlet extends MIDlet 
                        implements MicroMenuListener {
                            
    private static Ticker ticker;   //信息滚动条
    private Display display;        //屏幕管理器
    private MicroMenu mainMenu;     //主菜单
    private MicroMenu deleteMenu;   //删除子菜单
    private Command cmdExit;        //退出命令
    private Command cmdBack;        //返回命令
    
    private CurriculaOfDay cod;     //显示当天上课情况
    private CSBrowser csb;          //浏览课程表
    private AddCurriculum addCur;   //添加课程
    private DeleteCurriculum delCur;    //逐个删除课程表中的课程
    private MicroDialog aboutDialog;    //关于信息对话框
    
    public ECSMIDlet() {
        display = Display.getDisplay(this);
        cmdExit = new Command("退出", Command.EXIT, 1);
        cmdBack = new Command("返回", Command.BACK, 1);
        createMenu();   //创建菜单
    }
    
    protected void startApp() {
        mainMenu.show();
    }
    
    protected void pauseApp() {
        //
    }
    
    protected void destroyApp(boolean unconditional) {
        //
    }
    
    //创建主菜单和删除功能子菜单
    private void createMenu() {
        mainMenu = new MicroMenu("电子课程表", display);
        String[] items = {"当天课程", "浏览课程表", "添加课程", "删除", "关于..."};
        for(int i=0; i<items.length; i++) {
            mainMenu.addItem(items[i]);
        }
        mainMenu.setCommand(cmdExit);
        mainMenu.setMicroMenuListener(this);
        
        deleteMenu = new MicroMenu("删除", display);
        String[] delItems = {"删除所有课程", "逐个删除"};
        for(int i=0; i<delItems.length; i++) {
            deleteMenu.addItem(delItems[i]);
        }
        deleteMenu.setCommand(cmdBack);
        deleteMenu.setMicroMenuListener(this);
    }
    
    //当用户选择菜单项时,系统自动调用该方法。
    public void transactItem(MicroMenu mm, int index) {
        if(mm == mainMenu) {
            switch(index) {
                case 0:     //当天课程
                    showCurricula();
                    break;
                case 1:     //浏览课程表
                    browserCS();
                    break;
                case 2:     //添加课程
                    addCurriculum();
                    break;
                case 3:     //删除
                    deleteMenu.show();
                    break;
                case 4:     //关于...
                    about();
            }
        }
        else if(mm == deleteMenu) {
            switch(index) {
                case 0:     //删除所有课程
                    delAllCurriculum();
                    break;
                case 1:     //逐个删除
                    deleteCurriculum();
            }
        }
    }
    
    //显示当天的课程信息
    private void showCurricula() {
        if(cod == null) {
            cod = new CurriculaOfDay(display, mainMenu);
        }
        Calendar cal = Calendar.getInstance();
        int week = cal.get(Calendar.DAY_OF_WEEK);
        if(week == 1) {
            week = 6;
        }
        else {
            week -= 2;
        }
        cod.setWeek(week);
        cod.show();
    }
    
    //浏览课程表
    private void browserCS() {
        if(csb == null) {
            csb = new CSBrowser(display, mainMenu);
        }
        csb.show();
    }
    
    //添加课程
    private void addCurriculum() {
        if(addCur == null) {
            addCur = new AddCurriculum(display, mainMenu);
        }
        addCur.show();
    }
    
    //逐个删除课程表中的课程
    private void deleteCurriculum() {
        if(delCur == null) {
            delCur = new DeleteCurriculum(display, deleteMenu);
        }
        delCur.show();
    }
    
    //关于信息
    public void about() {
        if(aboutDialog == null) {
            aboutDialog = new MicroDialog(display, MicroDialog.OK);
            aboutDialog.setTitle("关于...");
            aboutDialog.setMessage("    电子课程表为教师和学生随时随地查看上课信息提供了方便。" 
                                    + "该软件能够运行于所有支持J2ME MIDP2.0的手机中。\n\n"
                                    + "作者:   杨光" + "\n时间:2007-6-23");
            aboutDialog.setMicroDialogListener(new MicroDialogListener() {
                public void action(MicroDialog md, int code) {
                    mainMenu.show();
                }
            });
        }
        
        aboutDialog.show();
    }
    
    //删除课程表中的所有课程
    private void delAllCurriculum() {
        MicroDialog mDialog = new MicroDialog(display, MicroDialog.YES_NO);
        mDialog.setTitle("删除课程对话框");
        mDialog.setMessage("您确信要删除课程表中所有的课程吗?");
        mDialog.setMicroDialogListener(new MicroDialogListener() {
            public void action(MicroDialog md, int code) {
                if(code == MicroDialog.YES) {
                    CurriculumDAO cdao = null;
                    Curriculum[] curs = null;
                    try {
                        cdao = CurriculumDAO.getInstance();
                        cdao.openRecordStore();
                        curs = cdao.getAll();
                        for(int i=0; i<curs.length; i++) {
                            cdao.delete(curs[i].getID());
                        }
                    }
                    catch(DAOException daoe) {
                        //
                    }
                    finally {
                        try {
                            cdao.closeRecordStore();
                        }
                        catch(DAOException daoe1) {
                            //
                        }
                    }
                }
                mainMenu.show();
            }
        });
        
        mDialog.show();
    }
    
    //当用户触发菜单上的命令(选择命令除外)时,系统自动调用该方法。
    public void transactCommand(MicroMenu mm, Command cmd) {
        if(mm == mainMenu && cmd == cmdExit) {          //退出
            destroyApp(true);
            notifyDestroyed();
        }
        else if(mm == deleteMenu && cmd == cmdBack) {   //返回主菜单
            mainMenu.show();
        }
    }
    
    //获取课程表信息滚动条
    public static Ticker getTicker() {
        if(ticker == null) {
            Calendar calendar = Calendar.getInstance();
            String[] dayOfWeek = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
            String riqi = calendar.get(Calendar.YEAR) + "年" 
                                + (calendar.get(Calendar.MONTH)+1) + "月"
                                + calendar.get(Calendar.DATE) + "日"
                                + dayOfWeek[calendar.get(Calendar.DAY_OF_WEEK)-1];
            String info = "欢迎使用电子课程表!   " + riqi;
            ticker = new Ticker(info);
        }
        
        return ticker;
    }
}

⌨️ 快捷键说明

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