📄 maincanvas.java
字号:
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.ItemStateListener;
import javax.microedition.lcdui.List;
import javax.microedition.lcdui.TextField;
public class MainCanvas extends Canvas implements CommandListener,ItemStateListener{
private Command exitCommand=new Command("退出",Command.SCREEN,1);
private Command okCommand=new Command("确定",Command.SCREEN,1);
private Command backCommand=new Command("返回",Command.SCREEN,1);
private MainCanvas main;
private String Name[]={"王玮","吉莉","曾毓慧","陈昌伟","黎韧","赵云","郭姝","古君书","林嘉欣","谭立峰"};
private int Score[]={78,85,59,68,98,47,75,86,89,96};
public static int id[]=new int[100];
private final String[] list = {"增加","修改","删除"};
private int selected_List = 0;//选择变量
private int screen_w = 0;//屏幕宽度
private int screen_h = 0;//屏幕高度
private Font font = null;
final public static int Record_Main=1;//主画面
final public static int Record_Add=2;//添加画面
final public static int Record_Delete=3;//删除画面
final public static int Record_Set=4;//修改画面
final public static int Record_Alert=5;//添加成功&失败提示画面
final public static int Record_LastSet=6;//修改记录成功&失败提示画面
final public static int Record_End=7;//删除记录后提示画面
final public static int Record_SetList=8;//修改列表清单
private int currentCanvas=0;//记录指针
private boolean addFlag=false;//添加是否成功
// private boolean deleteFlag=false;//删除是否成功
private boolean setFlag=false;//修改是否成功
private TextField name;
private TextField score;
private TextField note;
/*用来记录改变得变量值*/
private String Rname,Rnote;
private int Rscore;
private RmsUtil rms=null;
private String RSname="testdb";
private int ID=-1;//记录要被修改的ID
private int m=0;//增加记录的数量
public MainCanvas() {
main=this;
addCommand(exitCommand);
addCommand(okCommand);
setCommandListener(this);
init_screen();
currentCanvas=Record_Main;
}
public void init_screen()
{
for(int i=0;i<100;i++)
{
id[i]=-1;
}
rms=new RmsUtil();
rms.destroyRS(RSname);
rms.createRS(RSname);
for(int i=0;i<Name.length;i++)
{
id[i]=rms.AddDate(RSname, Name[i], Score[i],"");
}
screen_w=this.getWidth();
screen_h=this.getHeight();
font=Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_BOLD,Font.SIZE_LARGE);
}
protected void paint(Graphics g) {
// TODO 自动生成方法存根
g.setColor(0xffffff);//清空屏幕
g.fillRect(0, 0, screen_w, screen_h);
g.setFont(font);
draw_List(g);
}
public void draw_List (Graphics g) {
if (list != null) {
int listlen = list.length;
for (int i = 0; i < listlen; i++) {
boolean selected = selected_List == i ? true : false;
// if (selected) { // 选中
// g.setColor(100,110,210);
// g.fillRect(0, screen_h*selected_List/3,screen_w,screen_h/3);
// }
// g.setColor(0,0,0);
// g.drawString(list[i], screen_w/2,screen_h*i/3, g.TOP|g.HCENTER);
if (selected) { // 选中
g.setColor(255,0,0);
}
else
g.setColor(0,0,0);
g.drawString(list[i], screen_w/2,screen_h*(i+2)/6, g.TOP|g.HCENTER);
}
}
}
public void keyPressed(int keycode)
{
switch (keycode) {
case -1:
case 50:
selected_List--;
if (selected_List < 0) {
selected_List = list.length - 1;
}
break;
case -2:
case 56:
selected_List++;
if (selected_List > list.length - 1) {
selected_List = 0;
}
break;
}
repaint();
}
public void commandAction(Command arg0, Displayable arg1) {
// TODO 自动生成方法存根
String cmd=arg0.getLabel();
if(cmd.equals("确定"))
{
switch(currentCanvas)
{
case Record_Main:
switch(selected_List)
{
case 0:
paintAddForm();
break;
case 1:
paintSetList();
break;
case 2:
paintDeleteList();
break;
}
break;
case Record_Add:
change(ID);
Alert addAlert=new Alert("提示信息");
currentCanvas=Record_Alert;
addAlert.addCommand(backCommand);
addAlert.addCommand(okCommand);
addAlert.setCommandListener(this);
if(addFlag)
{
addAlert.setString("恭喜你的资料已经添加成功!");
addAlert.setType(AlertType.CONFIRMATION);
addAlert.setTimeout(Alert.FOREVER);
addFlag=false;
}
else if(m>90)
{
addAlert.setString("你的内存已满");
addAlert.setType(AlertType.ERROR);
addAlert.setTimeout(Alert.FOREVER);
}
else
{
addAlert.setString("你的资料有错误,请重新输入!");
addAlert.setType(AlertType.ERROR);
addAlert.setTimeout(Alert.FOREVER);
}
show(addAlert);
break;
case Record_SetList:
paintSetForm();
ID=setRecordList.getSelectedIndex();
setRecordList=null;
break;
case Record_Set:
change(ID+1);
ID=-1;
Alert setAlert=new Alert("提示信息");
currentCanvas=Record_LastSet;
setAlert.addCommand(backCommand);
setAlert.addCommand(okCommand);
setAlert.setCommandListener(this);
if(setFlag)
{
setAlert.setString("恭喜你的资料已经修改成功!");
setAlert.setType(AlertType.CONFIRMATION);
setAlert.setTimeout(Alert.FOREVER);
setFlag=false;
}
else
{
setAlert.setString("你的资料有错误,请重新输入!");
setAlert.setType(AlertType.ERROR);
setAlert.setTimeout(Alert.FOREVER);
}
show(setAlert);
break;
case Record_Delete:
ID=deleteRecordList.getSelectedIndex();
change(ID);
ID=-1;
Alert deleteAlert=new Alert("提示信息");
currentCanvas=Record_End;
deleteAlert.addCommand(okCommand);
deleteAlert.setCommandListener(this);
deleteAlert.setString("恭喜你删除成功!");
deleteAlert.setType(AlertType.CONFIRMATION);
deleteAlert.setTimeout(Alert.FOREVER);
show(deleteAlert);
deleteRecordList=null;
break;
case Record_Alert:
currentCanvas=Record_Main;
show(main);
break;
case Record_LastSet:
currentCanvas=Record_Main;
show(main);
break;
case Record_End:
paintDeleteList();
break;
}
}
else if(cmd.equals("退出"))
{
rms.destroyRS(RSname);
RecordTest1.quitApp();
}
else if(cmd.equals("返回"))
{
switch(currentCanvas)
{
case Record_Add:
case Record_SetList:
case Record_Delete:
currentCanvas=Record_Main;
show(main);
break;
case Record_Set:
case Record_LastSet:
paintSetList();
break;
case Record_Alert:
paintAddForm();
break;
}
}
}
public void paintAddForm()
{
Form addRecordForm=new Form("增加一个记录");
name=new TextField("姓名","",8,TextField.ANY);
score=new TextField("分数","",4,TextField.PHONENUMBER);
note=new TextField("备注","",30,TextField.ANY);
addRecordForm.append(name);
addRecordForm.append(score);
addRecordForm.append(note);
currentCanvas=Record_Add;
addRecordForm.addCommand(backCommand);
addRecordForm.addCommand(okCommand);
addRecordForm.setCommandListener(this);
addRecordForm.setItemStateListener(this);
show(addRecordForm);
addRecordForm=null;
}
public void paintSetForm()
{
Form setRecordForm=new Form("修改一个记录");
name=new TextField("姓名","",8,TextField.ANY);
score=new TextField("分数","",4,TextField.PHONENUMBER);
note=new TextField("备注","",30,TextField.ANY);
setRecordForm.append(name);
setRecordForm.append(score);
setRecordForm.append(note);
currentCanvas=Record_Set;
setRecordForm.addCommand(backCommand);
setRecordForm.addCommand(okCommand);
setRecordForm.setCommandListener(this);
setRecordForm.setItemStateListener(this);
show(setRecordForm);
setRecordForm=null;
}
List setRecordList;
public void paintSetList()
{
setRecordList=new List("请选择一个记录",List.IMPLICIT);
currentCanvas=Record_SetList;
for(int i=0;i<100;i++)
{
if(id[i]>=0)
{
String[] s=rms.readDate(RSname, id[i]);
// System.out.println("paintSetList id[" + i + "] =" + id[i]);
// System.out.println(s[0]+" "+Integer.parseInt(s[1])+" "+s[2]);
setRecordList.append(s[0]+" "+Integer.parseInt(s[1])+" "+s[2], null);
}
}
setRecordList.addCommand(backCommand);
setRecordList.addCommand(okCommand);
setRecordList.setCommandListener(this);
show(setRecordList);
}
List deleteRecordList;
public void paintDeleteList()
{
deleteRecordList=new List("删除一个记录",List.IMPLICIT);
currentCanvas=Record_Delete;
for(int i=0;i<100;i++)
{
if(id[i]>=0)
{
String[] s=rms.readDate(RSname, id[i]);
deleteRecordList.append(s[0]+" "+Integer.parseInt(s[1])+" "+s[2], null);
}
}
deleteRecordList.addCommand(backCommand);
deleteRecordList.addCommand(okCommand);
deleteRecordList.setCommandListener(this);
show(deleteRecordList);
}
public void itemStateChanged(Item item) {
// TODO 自动生成方法存根
if(item==name)
Rname = name.getString();
else if(item==score)
Rscore=Integer.parseInt(score.getString());
else if(item==note)
Rnote=note.getString();
}
/* 显示当前的画面*/
public void show(Displayable d)
{
RecordTest1.display.setCurrent(d);
}
/*保存数据或者修改数据*/
public void change(int number)
{
switch(currentCanvas)
{
case Record_Add:
// System.out.println("ok 00001");
if(!addFlag&&m<91)
{
if(Rname!=null&&Rscore!=0)
{
if(Rnote==null)Rnote="";
id[m+10]=rms.AddDate(RSname, Rname, Rscore, Rnote);
addFlag=true;
Rname=null;
Rscore=0;
Rnote=null;
m++;
}
}
break;
case Record_Set:
// System.out.println("ok 00002");
if(!setFlag)
{
if(Rname!=null&&Rscore!=0)
{
if(Rnote==null)Rnote="";
// System.out.println("number = " + number);
rms.SetDate(RSname,number,Rname,Rscore,Rnote);
setFlag=true;
Rname=null;
Rscore=0;
Rnote=null;
}
}
break;
case Record_Delete:
rms.DeleteDate(RSname, number);
id[number]=-1;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -