📄 ecsmidlet.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 + -