package MainFormPackage;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import DataBasePackage.BusDataRecord;
import DataBasePackage.RecordStoreE;
import PublicPackage.BusType;
import PublicPackage.DrawBallType;
import PublicPackage.SimpleBusType;
import ThreadPackage.*;

public class MainForm extends MIDlet implements CommandListener ...{
private Display display;
private TableForm tableform;
private OddEvenForm oddevenform;
private List adddelmodList;
private Form Tempf;
private Command CMD_EXIT_MAIN = new Command("退出", Command.EXIT, 1);
private Command CMD_SHOW_TABLE = new Command("进入", Command.ITEM, 1);
private Command CMD_SHOW_OK = new Command("确定", Command.ITEM, 1);
private String[] strlist;
private Image Icon_mi, Icon_sa, Icon_tu, Icon_wr, Icon_ms, Icon_cs;
private Image[] IconArr;
private List mainList;
private TextField TBCodeA, TBCodeM, TBCodeD, TBReadBallA, TBReadBallM,
TBBlueBallA, TBBlueBallM, TFSZBus, TFSZBusSite;
private Form SZBusForm, SZBusSiteForm;
//private TextField SumMax,SumMin,ConnectCode,OddEven;

public MainForm() ...{
//
RecordStoreE Rse = new RecordStoreE();
Rse.CloseDatabase();
Rse.OpenDatabase();
DrawBallType record = new DrawBallType();
///////////////////////////////////////////////////////////////////////////////////// //
if (Rse.GetAllRecord(true).length > 1) ...{

} else ...{
record.RedBall[0] = 10;
record.RedBall[1] = 15;
record.RedBall[2] = 17;
record.RedBall[3] = 24;
record.RedBall[4] = 26;
record.RedBall[5] = 28;
record.BlueBall[0] = 12;
record.BlueBall[1] = 0;
record.Str = "07063";
Rse.AddRecord(record);
record.RedBall[0] = 8;
record.RedBall[1] = 17;
record.RedBall[2] = 20;
record.RedBall[3] = 29;
record.RedBall[4] = 30;
record.RedBall[5] = 33;
record.BlueBall[0] = 9;
record.BlueBall[1] = 0;
record.Str = "07062";
Rse.AddRecord(record);
record.RedBall[0] = 01;
record.RedBall[1] = 06;
record.RedBall[2] = 07;
record.RedBall[3] = 11;
record.RedBall[4] = 20;
record.RedBall[5] = 23;
record.BlueBall[0] = 05;
record.BlueBall[1] = 0;
record.Str = "07061";
Rse.AddRecord(record);
record.RedBall[0] = 01;
record.RedBall[1] = 02;
record.RedBall[2] = 8;
record.RedBall[3] = 16;
record.RedBall[4] = 19;
record.RedBall[5] = 29;
record.BlueBall[0] = 05;
record.BlueBall[1] = 6;
record.Str = "07060";
Rse.AddRecord(record);
record.RedBall[0] = 01;
record.RedBall[1] = 03;
record.RedBall[2] = 4;
record.RedBall[3] = 6;
record.RedBall[4] = 7;
record.RedBall[5] = 29;
record.BlueBall[0] = 14;
record.BlueBall[1] = 0;
record.Str = "07059";
Rse.AddRecord(record);
record.RedBall[0] = 7;
record.RedBall[1] = 8;
record.RedBall[2] = 10;
record.RedBall[3] = 13;
record.RedBall[4] = 25;
record.RedBall[5] = 27;
record.BlueBall[0] = 14;
record.BlueBall[1] = 0;
record.Str = "07058";
Rse.AddRecord(record);
record.RedBall[0] = 5;
record.RedBall[1] = 11;
record.RedBall[2] = 18;
record.RedBall[3] = 19;
record.RedBall[4] = 20;
record.RedBall[5] = 21;
record.BlueBall[0] = 9;
record.BlueBall[1] = 0;
record.Str = "07057";
Rse.AddRecord(record);
record.RedBall[0] = 14;
record.RedBall[1] = 17;
record.RedBall[2] = 21;
record.RedBall[3] = 29;
record.RedBall[4] = 31;
record.RedBall[5] = 32;
record.BlueBall[0] = 12;
record.BlueBall[1] = 0;
record.Str = "07056";
Rse.AddRecord(record);
record.RedBall[0] = 2;
record.RedBall[1] = 6;
record.RedBall[2] = 11;
record.RedBall[3] = 22;
record.RedBall[4] = 28;
record.RedBall[5] = 29;
record.BlueBall[0] = 2;
record.BlueBall[1] = 0;
record.Str = "07055";
Rse.AddRecord(record);
record.RedBall[0] = 1;
record.RedBall[1] = 3;
record.RedBall[2] = 16;
record.RedBall[3] = 18;
record.RedBall[4] = 23;
record.RedBall[5] = 28;
record.BlueBall[0] = 5;
record.BlueBall[1] = 0;
record.Str = "07054";
Rse.AddRecord(record);
record.RedBall[0] = 1;
record.RedBall[1] = 13;
record.RedBall[2] = 16;
record.RedBall[3] = 17;
record.RedBall[4] = 18;
record.RedBall[5] = 27;
record.BlueBall[0] = 11;
record.BlueBall[1] = 0;
record.Str = "07053";
Rse.AddRecord(record);
record.RedBall[0] = 2;
record.RedBall[1] = 3;
record.RedBall[2] = 7;
record.RedBall[3] = 8;
record.RedBall[4] = 26;
record.RedBall[5] = 29;
record.BlueBall[0] = 11;
record.BlueBall[1] = 0;
record.Str = "07052";
Rse.AddRecord(record);
record.RedBall[0] = 3;
record.RedBall[1] = 14;
record.RedBall[2] = 16;
record.RedBall[3] = 26;
record.RedBall[4] = 27;
record.RedBall[5] = 33;
record.BlueBall[0] = 13;
record.BlueBall[1] = 0;
record.Str = "07051";
Rse.AddRecord(record);
record.RedBall[0] = 1;
record.RedBall[1] = 5;
record.RedBall[2] = 8;
record.RedBall[3] = 13;
record.RedBall[4] = 18;
record.RedBall[5] = 25;
record.BlueBall[0] = 2;
record.BlueBall[1] = 0;
record.Str = "07050";
Rse.AddRecord(record);
Rse.CloseDatabase();
}
//////////////////////////////////////////////////////////////////////////////////
//
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException ...{
}

protected void pauseApp() ...{
}

protected void startApp() ...{

try ...{
strlist = new String[] ...{ "常规走势", "奇偶和值", "记录修改", "线路查询", "站点查询" };
Icon_mi = Image.createImage("/res/mi_nav.png");
Icon_sa = Image.createImage("/res/sa_nav.png");
Icon_tu = Image.createImage("/res/tu_nav.png");
Icon_wr = Image.createImage("/res/wr_nav.png");
Icon_ms = Image.createImage("/res/ov_nav.png");
Icon_cs = Image.createImage("/res/wn_nav.png");

IconArr = new Image[] ...{ Icon_mi, Icon_sa, Icon_tu, Icon_wr, Icon_ms };
mainList = new List("苏州公交-双色球图", List.IMPLICIT, strlist, IconArr);
display = Display.getDisplay(this);
mainList.addCommand(CMD_EXIT_MAIN);
mainList.addCommand(CMD_SHOW_TABLE);
mainList.setCommandListener(this);
display.setCurrent(mainList);

} catch (Exception e) ...{
System.out.println(e.toString());
}
}

public void commandAction(Command c, Displayable d) ...{
try ...{
if (d.equals(mainList)) ...{
if (c == CMD_EXIT_MAIN) ...{
destroyApp(false);
notifyDestroyed();
} else if (c == CMD_SHOW_TABLE) ...{
switch (((List) d).getSelectedIndex()) ...{
case 0:// 走势图
tableform = new TableForm("常规走势", display, mainList, "");
display.setCurrent(tableform);
break;
case 1:// 奇偶表
oddevenform = new OddEvenForm("奇偶和值", display,
mainList, "");
display.setCurrent(oddevenform);
break;
case 2:// 增删改
strlist = new String[] ...{ "增加记录", "删除记录", "修改记录" };
Image Icon_ov = Image.createImage("/res/ov_nav.png");
Image Icon_wb = Image.createImage("/res/wb_nav.png");
Image Icon_wn = Image.createImage("/res/wn_nav.png");

IconArr = new Image[] ...{ Icon_ov, Icon_wb, Icon_wn };
adddelmodList = new List("记录修改", List.IMPLICIT,
strlist, IconArr);
adddelmodList.addCommand(CMD_EXIT_MAIN);
adddelmodList.addCommand(CMD_SHOW_TABLE);
adddelmodList.setCommandListener(this);
display.setCurrent(adddelmodList);
break;
case 3: // /////////////////////////苏州公交
try ...{
SZBusForm = new Form("线路查询");
SZBusForm.addCommand(CMD_EXIT_MAIN);
SZBusForm.addCommand(CMD_SHOW_OK);
TFSZBus = new TextField("线路", "101", 50,
TextField.ANY);
SZBusForm.append(TFSZBus);
SZBusForm.setCommandListener(this);
display.setCurrent(SZBusForm);

} catch (Exception e) ...{
e.printStackTrace();
}
break;
case 4: // /////////////////////////苏州公交
try ...{
SZBusSiteForm = new Form("站点查询");
SZBusSiteForm.addCommand(CMD_EXIT_MAIN);
SZBusSiteForm.addCommand(CMD_SHOW_OK);
TFSZBusSite = new TextField("站点", "北园新村", 50,
TextField.ANY);
SZBusSiteForm.append(TFSZBusSite);
SZBusSiteForm.setCommandListener(this);
display.setCurrent(SZBusSiteForm);
} catch (Exception e) ...{
e.printStackTrace();
}
break;
}
}
} else if (d.equals(adddelmodList)) ...{
// 退出主界面
if (c == CMD_EXIT_MAIN) ...{
display.setCurrent(mainList);
//
} else if (c == CMD_SHOW_TABLE) ...{
switch (((List) d).getSelectedIndex()) ...{
case 0:// 添加记录
TBCodeA = new TextField("期号", "", 50, TextField.ANY);
TBReadBallA = new TextField("红球", "", 50, TextField.ANY);
TBBlueBallA = new TextField("蓝球", "", 50, TextField.ANY);
Tempf = new Form("添加记录");
Tempf.append(TBCodeA);
Tempf.append(TBReadBallA);
Tempf.append(TBBlueBallA);
Tempf.addCommand(CMD_EXIT_MAIN);
Tempf.addCommand(CMD_SHOW_OK);
Tempf.setCommandListener(this);
//
// TBCodeA.setString("07050");
// TBReadBallA.setString("01 05 08 13 18 25");
// TBBlueBallA.setString("2");
//
display.setCurrent(Tempf);
break;
case 1:// 删除
TBCodeD = new TextField("期号", "", 50, TextField.ANY);
Tempf = new Form("删除记录");
Tempf.append(TBCodeD);
Tempf.addCommand(CMD_EXIT_MAIN);
Tempf.addCommand(CMD_SHOW_OK);
Tempf.setCommandListener(this);
//TBCodeD.setString("07051");
display.setCurrent(Tempf);
break;
case 2:// 修改
TBCodeM = new TextField("期号", "", 50, TextField.ANY);
TBReadBallM = new TextField("红球", "", 50, TextField.ANY);
TBBlueBallM = new TextField("蓝球", "", 50, TextField.ANY);
Tempf = new Form("修改记录");
Tempf.append(TBCodeM);
Tempf.append(TBReadBallM);
Tempf.append(TBBlueBallM);
Tempf.addCommand(CMD_EXIT_MAIN);
Tempf.addCommand(CMD_SHOW_OK);
Tempf.setCommandListener(this);
// TBCodeM.setString("07055");
// TBReadBallM.setString("1 2 3 4 5 6");
// TBBlueBallM.setString("9");
display.setCurrent(Tempf);
break;
}
}
} else if (d.equals(SZBusForm)) ...{/////////////////////////苏州公交
if (c == CMD_EXIT_MAIN) ...{
display.setCurrent(mainList);
//
} else if (c == CMD_SHOW_OK) ...{
ShowRoadThread Showmessage = new ShowRoadThread(display,
TFSZBus.getString().trim(), SZBusForm);
Showmessage.start();
}
} else if (d.equals(SZBusSiteForm)) ...{/////////////////////////苏州公交
if (c == CMD_EXIT_MAIN) ...{
display.setCurrent(mainList);
//
} else if (c == CMD_SHOW_OK) ...{
ShowSiteThread Showmessage = new ShowSiteThread(display,
TFSZBusSite.getString().trim(), SZBusSiteForm,
mainList);
Showmessage.start();
}
} else if (d.equals(Tempf)) ...{
if (c == CMD_EXIT_MAIN) ...{
display.setCurrent(adddelmodList);
//
} else if (c == CMD_SHOW_OK) ...{
display.setCurrent(adddelmodList);

if (((Form) d).getTitle().equals("删除记录")) ...{
System.out.println("DEL");
System.out.println(TBCodeD.getString());
if (TBCodeD.getString().length() != 5) ...{
WarningShow("输入的期号必须是五位,例如07059");
} else ...{
try ...{
Integer.valueOf(TBCodeD.getString());
RecordStoreE T = new RecordStoreE();
T.CloseDatabase();
T.OpenDatabase();
DrawBallType TD = new DrawBallType();
TD.Str = TBCodeD.getString();
T.DeleteRecord(TD);
T.CloseDatabase();
WarningShow("删除成功");
} catch (Exception e) ...{
WarningShow("输入的期号必须是数字类型,例如07059");
}
}

} else if (((Form) d).getTitle().equals("修改记录")) ...{
System.out.println("MOD");
//期号
if (TBCodeM.getString().length() != 5) ...{
WarningShow("输入的期号必须是五位,例如07059");
} else ...{
try ...{
Integer.valueOf(TBCodeM.getString());
} catch (Exception e) ...{
WarningShow("输入的期号必须是数字类型,例如07059");
}
}
//红球

if (TBReadBallM.getString().length() >= 11) ...{
String TempStr = TBReadBallM.getString().trim();
byte[] TempB = CutString(TempStr);
if (TempB.length != 6) ...{
WarningShow("输入的红球必须是六个,以空格隔开.例如2 8 19 26 30 33");
} else ...{
//蓝球
String TempStrB = TBBlueBallM.getString()
.trim();
byte[] TempBB = CutString(TempStrB);
if ((TempBB.length >= 1) && (TempBB.length < 3)) ...{
try ...{
RecordStoreE T = new RecordStoreE();
T.CloseDatabase();
T.OpenDatabase();
DrawBallType TD = new DrawBallType();
TD.Str = TBCodeM.getString();
for (int i = 0; i < TempB.length; i++)
TD.RedBall[i] = TempB[i];
for (int j = 0; j < TempBB.length; j++)
TD.BlueBall[j] = TempBB[j];
T.DeleteRecord(TD);
T.AddRecord(TD);
T.CloseDatabase();
WarningShow("修改成功");
} catch (Exception e) ...{
WarningShow("输入的红球必须是六个,以空格隔开.例如2 8 19 26 30 33");
}
} else
WarningShow("输入的蓝球只能是1个.例如8");
}
} else
WarningShow("输入的红球必须是六个,以空格隔开.例如2 8 19 26 30 33");
} else if (((Form) d).getTitle().equals("添加记录")) ...{
System.out.println("ADD");
//期号
if (TBCodeA.getString().length() != 5) ...{
WarningShow("输入的期号必须是五位,例如07059");
} else ...{
try ...{
Integer.valueOf(TBCodeA.getString());
} catch (Exception e) ...{
WarningShow("输入的期号必须是数字类型,例如07059");
}
}
//红球

if (TBReadBallA.getString().length() > 11) ...{
String TempStr = TBReadBallA.getString().trim();
byte[] TempB = CutString(TempStr);
if (TempB.length != 6) ...{
WarningShow("输入的红球必须是六个,以空格隔开.例如2 8 19 26 30 33");
} else ...{
//蓝球
String TempStrB = TBBlueBallA.getString()
.trim();
byte[] TempBB = CutString(TempStrB);
System.out.println(TempStrB + " "
+ TempBB.length);

if ((TempBB.length >= 1) && (TempBB.length < 3)) ...{
try ...{
RecordStoreE T = new RecordStoreE();
T.CloseDatabase();
T.OpenDatabase();
DrawBallType TD = new DrawBallType();
TD.Str = TBCodeA.getString();
for (int i = 0; i < TempB.length; i++)
TD.RedBall[i] = TempB[i];
for (int j = 0; j < TempBB.length; j++)
TD.BlueBall[j] = TempBB[j];
T.AddRecord(TD);
T.CloseDatabase();
WarningShow("添加成功");
} catch (Exception e) ...{
WarningShow("输入的红球必须是六个,以空格隔开.例如2 8 19 26 30 33");
}
} else
WarningShow("输入的蓝球只能是1个.例如8");
}
} else
WarningShow("输入的红球必须是六个,以空格隔开.例如2 8 19 26 30 33");
}
}
}
} catch (Exception e) ...{
System.out.println(e.toString());
}
}

private void WarningShow(String Info) ...{
Alert Warning = new Alert("友情提示");
Warning.setTimeout(5000);
Warning.setString(Info);
display.setCurrent(Warning);
}

private byte[] CutString(String Str) ...{
Str = Str.trim() + " ";
byte[] TB = Str.getBytes();
int GNum = 0;
for (int i = 0; i < TB.length; i++) ...{
if (TB[i] == ' ')
GNum++;
}
byte[] TempB = new byte[GNum];
try ...{
String TS = "";
int index = 0;
for (int i = 0; i < TB.length; i++) ...{
if (TB[i] == ' ') ...{
TempB[index++] = Integer.valueOf(TS).byteValue();
TS = "";
} else ...{
TS = TS + (char) (TB[i]);
}
}
} catch (Exception e) ...{
TempB = new byte[0];
}
return TempB;
}
}
package MainFormPackage;
import javax.microedition.lcdui.*;
import DataBasePackage.RecordStoreE;
import PublicPackage.*;

public class OddEvenForm extends Form implements CommandListener ...{
private Command CMD_PROP = new Command("属性", Command.ITEM, 1);
private Command CMD_BACK = new Command("返回", Command.CANCEL, 1);
private OddEvenView tableview;
private Display display;
private List mf;
private String str;

public OddEvenForm(String Title, Display d, List mainList,String s) ...{
super(Title);
display = d;
mf = mainList;
str = s;
addCommand(CMD_PROP);
addCommand(CMD_BACK);
RecordStoreE TempRec = new RecordStoreE();
TempRec.OpenDatabase();
DrawBallType[] TempDraw = TempRec.GetAllRecord(false);
tableview = new OddEvenView(str, d, TempDraw.length, TempDraw, 0);
append(tableview);
setCommandListener(this);
}


public void commandAction(Command c, Displayable d) ...{
try ...{
if (c == CMD_PROP) ...{

} else if (c == CMD_BACK) ...{
display.setCurrent(mf);
}

} catch (Exception e) ...{
System.out.println(e.toString());
}
}
}
package MainFormPackage;
import javax.microedition.lcdui.*;
import PublicPackage.*;

public class OddEvenView extends CustomItem implements ItemCommandListener ...{
// 320X240
private int rows = 15; // 行
private int cols = 15; // 列
private int dx = 14;
private int dy = 17;
private int x = 3;
private int p = 6;
private DrawBallType[] DrawBallData;
//
protected OddEvenView(String Title, Display d, int DrawBallLength,
DrawBallType[] R, int Area) ...{
super(Title);
rows = DrawBallLength + 1;
DrawBallData = new DrawBallType[DrawBallLength];
CopyDrawBall(R, DrawBallData, DrawBallLength);
SetListenerToTable();
}
public void CopyDrawBall(DrawBallType[] Source, DrawBallType[] Targate,
int Length) ...{
for (int i = 0; i < Length; i++) ...{
Targate[i] = new DrawBallType();
for (int j = 0; j < 6; j++)
Targate[i].RedBall[j] = Source[i].RedBall[j];
Targate[i].BlueBall[0] = Source[i].BlueBall[0];
Targate[i].BlueBall[1] = Source[i].BlueBall[1];
Targate[i].Issure = Source[i].Issure;
Targate[i].Str = Source[i].Str;
}
}

public void SetListenerToTable() ...{
setItemCommandListener(this);
}

protected int getMinContentHeight() ...{
return (rows * dy) + 1;
}

protected int getMinContentWidth() ...{
return (cols * dy) + 1;
}

protected int getPrefContentHeight(int arg0) ...{
return (rows * dx) + 1;
}

protected int getPrefContentWidth(int arg0) ...{
return (cols * dx) + 1;
}

protected void paint(Graphics g, int w, int h) ...{
g.setColor(255, 128, 0);
// 画横线
for (int i = 0; i < rows; i++) ...{
g.drawLine(0, i * dy, cols * dx, i * dy);
}
// 画竖线
g.drawLine(0 * dx + x * dx - p, 0, 0 * dx + x * dx - p, cols * dy);
g.drawLine(2 * dx + x * dx - p, 0, 2 * dx + x * dx - p, cols * dy);
g.drawLine(4 * dx + x * dx - p, 0, 4 * dx + x * dx - p, cols * dy);
// 第一行
g.drawString(" 期号", 0, 0, Graphics.TOP | Graphics.LEFT);
g.setColor(128, 64, 0);
g
.drawString("奇偶", 0 * dx + x * dx - p, 0, Graphics.TOP
| Graphics.LEFT);
g
.drawString("和值", 2 * dx + x * dx - p, 0, Graphics.TOP
| Graphics.LEFT);
g
.drawString("和值走势", 5 * dx + x * dx - p, 0, Graphics.TOP
| Graphics.LEFT);
// 其他行
int LastP = 0;
for (int i = 0; i < rows - 1; i++) ...{
// 期号
g.setColor(125, 125, 125);
g.drawString(DrawBallData[i].Str, 2, (i + 1) * dy, Graphics.TOP
| Graphics.LEFT);
//
int JJ, OO;
JJ = 0;
OO = 0;
int NUM = 0;
for (int j = 0; j < 6; j++) ...{
if ((DrawBallData[i].RedBall[j] % 2) == 0)
OO++;
else
JJ++;
NUM = NUM + DrawBallData[i].RedBall[j];
}
g.setColor(0, 0, 64);
g.drawString(String.valueOf(JJ) + ":" + String.valueOf(OO), 0 * dx
+ x * dx, (i + 1) * dy, Graphics.TOP | Graphics.LEFT);
g.setColor(128, 0, 0);
g.drawString(String.valueOf(NUM), 2 * dx + x * dx, (i + 1) * dy,
Graphics.TOP | Graphics.LEFT);
int Length = 4 * dx + x * dx - p;
int Length1 = 4 * dx + x * dx - p;
int ThisP = (int)(((NUM -21.0) / (183.0 - 21.0))*Length+Length1);
g.setColor(0, 0, 255);
g.fillArc(ThisP, (i + 1) * dy + 5, 10, 10, 0, 360);
g.setColor(0, 0, 255);
if (0 != LastP )
...{
g.drawLine(LastP+5, (i) * dy + 10, ThisP+5, (i + 1) * dy + 10);
}
LastP = ThisP;
}
}

public void commandAction(Command arg0, Item arg1) ...{
}
}
package MainFormPackage;
import javax.microedition.lcdui.*;
import DataBasePackage.RecordStoreE;
import PublicPackage.*;

public class TableForm extends Form implements CommandListener ...{
private Command CMD_PROP = new Command("后区", Command.ITEM, 1);
private Command CMD_PROPP = new Command("前区", Command.ITEM, 0);
private Command CMD_BACK = new Command("返回", Command.ITEM, 2);
private TableView tableview;
private Display display;
private List mf;
private String str;
private int AreaSet = 0;

public TableForm(String Title, Display d, List mainList,String s) ...{
super(Title);
display = d;
mf = mainList;
str = s;
addCommand(CMD_PROPP);
addCommand(CMD_PROP);
addCommand(CMD_BACK);
RecordStoreE TempRec = new RecordStoreE();
TempRec.OpenDatabase();
DrawBallType[] TempDraw = TempRec.GetAllRecord(false);
str ="[ "+ String.valueOf(AreaSet+1)+" ] 区域";;
tableview = new TableView(str, d, TempDraw.length, TempDraw, AreaSet);
append(tableview);
setCommandListener(this);
}


public void commandAction(Command c, Displayable d) ...{
try ...{
if (c == CMD_PROP) ...{
deleteAll();
AreaSet ++;
if (AreaSet > 4) AreaSet = 0;
str ="[ "+ String.valueOf(AreaSet+1)+" ] 区域";;
RecordStoreE TempRec = new RecordStoreE();
TempRec.OpenDatabase();
DrawBallType[] TempDraw = TempRec.GetAllRecord(false);
tableview = new TableView(str, display, TempDraw.length, TempDraw, AreaSet);
append(tableview);
setCommandListener(this);

} else if (c == CMD_PROPP) ...{
deleteAll();
AreaSet --;
if (AreaSet < 0) AreaSet = 4;
str ="[ "+ String.valueOf(AreaSet+1)+" ] 区域";;
RecordStoreE TempRec = new RecordStoreE();
TempRec.OpenDatabase();
DrawBallType[] TempDraw = TempRec.GetAllRecord(false);
tableview = new TableView(str, display, TempDraw.length, TempDraw, AreaSet);
append(tableview);
setCommandListener(this);

}else if (c == CMD_BACK) ...{
display.setCurrent(mf);
}

} catch (Exception e) ...{
System.out.println(e.toString());
}
}
}
package MainFormPackage;
import javax.microedition.lcdui.*;
import PublicPackage.*;

public class TableView extends CustomItem implements ItemCommandListener ...{
// 320X240
private int rows = 15; // 行
private int cols = 15; // 列
private int dx = 14;
private int dy = 17;
private int x = 3;
private int p = 6;
private int AreaCode;
private DrawBallType[] DrawBallData;
//
protected TableView(String Title, Display d, int DrawBallLength,
DrawBallType[] R, int Area) ...{
super(Title);
AreaCode = Area;
rows = DrawBallLength + 1;
DrawBallData = new DrawBallType[DrawBallLength];
CopyDrawBall(R, DrawBallData, DrawBallLength);
SetListenerToTable();
}
public void CopyDrawBall(DrawBallType[] Source, DrawBallType[] Targate,
int Length) ...{
for (int i = 0; i < Length; i++) ...{
Targate[i] = new DrawBallType();
for (int j = 0; j < 6; j++)
Targate[i].RedBall[j] = Source[i].RedBall[j];
Targate[i].BlueBall[0] = Source[i].BlueBall[0];
Targate[i].BlueBall[1] = Source[i].BlueBall[1];
Targate[i].Issure = Source[i].Issure;
Targate[i].Str = Source[i].Str;
}
}

public void SetListenerToTable() ...{
setItemCommandListener(this);
}

protected int getMinContentHeight() ...{
return (rows * dy) + 1;
}

protected int getMinContentWidth() ...{
return (cols * dy) + 1;
}

protected int getPrefContentHeight(int arg0) ...{
return (rows * dx) + 1;
}

protected int getPrefContentWidth(int arg0) ...{
return (cols * dx) + 1;
}

protected void paint(Graphics g, int w, int h) ...{
g.setColor(255, 128, 0);
// 画横线
for (int i = 0; i < rows; i++) ...{
g.drawLine(0, i * dy, cols * dx, i * dy);
}
// 画竖线
for (int j = 0; j < cols; j++) ...{
g.drawLine(j * dx + x * dx - p, 0, j * dx + x * dx - p, cols * dy);
}
if (AreaCode == 3)//蓝号码
...{
g.setColor(0, 125, 255);
// 画横线
for (int i = 0; i < rows; i++) ...{
g.drawLine(5 * dx + p + 2, i * dy, cols * dx, i * dy);
}
// 画竖线
for (int j = 3; j < cols; j++) ...{
g.drawLine(j * dx + x * dx - p, 0, j * dx + x * dx - p, cols
* dy);
}
g.setColor(255, 128, 0);

} else if (AreaCode == 4) ...{
g.setColor(0, 125, 255);
// 画横线
for (int i = 0; i < rows; i++) ...{
g.drawLine(0, i * dy, cols * dx, i * dy);
}
// 画竖线
for (int j = 0; j < cols; j++) ...{
g.drawLine(j * dx + x * dx - p, 0, j * dx + x * dx - p, cols
* dy);
}
g.setColor(255, 128, 0);
}
// 第一行
if (AreaCode >= 3)// 蓝号码
...{
if (AreaCode == 3) ...{
g.drawString(" 期号", 0, 0, Graphics.TOP | Graphics.LEFT);
for (int k = 0; k < cols; k++) ...{
if (k < 3) ...{
g.setColor(255, 128, 0);
g.drawString(String.valueOf((k) + 1 + (0 + AreaCode)
* 10), k * dx + (x) * dx + 2 - p, 0,
Graphics.TOP | Graphics.LEFT);

} else ...{
g.setColor(0, 125, 255);
g.drawString(String.valueOf(k - 2), k * dx + (x) * dx
+ 2 - p, 0, Graphics.TOP | Graphics.LEFT);
}
}
g.setColor(255, 128, 0);
} else if (AreaCode == 4) ...{
g.setColor(0, 125, 255);
g.drawString(" 期号", 0, 0, Graphics.TOP | Graphics.LEFT);
for (int k = 0; k < cols; k++) ...{
if (k + 8 != 17)
g.drawString(String.valueOf(k + 8), k * dx + (x) * dx + 2
- p, 0, Graphics.TOP | Graphics.LEFT);
}
g.setColor(255, 128, 0);
}
} else ...{
g.drawString(" 期号", 0, 0, Graphics.TOP | Graphics.LEFT);
for (int k = 0; k < cols; k++) ...{
g.drawString(String.valueOf((k) + 1 + (0 + AreaCode) * 10), k
* dx + (x) * dx + 2 - p, 0, Graphics.TOP
| Graphics.LEFT);
}
}
if (AreaCode < 3) ...{
// 其他行
for (int i = 0; i < rows - 1; i++) ...{
//期号
g.setColor(125, 125, 125);
g.drawString(DrawBallData[i].Str, 2, (i + 1) * dy, Graphics.TOP
| Graphics.LEFT);
//
for (int j = 0; j < 6; j++) ...{
if ((DrawBallData[i].RedBall[j] <= (1 + AreaCode) * 10)
&& (DrawBallData[i].RedBall[j] > (0 + AreaCode) * 10)) ...{
g.setColor(255, 0, 0);
int ArrIndexvalue = DrawBallData[i].RedBall[j]
- (0 + AreaCode) * 10;
int value = DrawBallData[i].RedBall[j];
int values = 0;
values = (ArrIndexvalue) * dx + (x - 1) * dx + 4 - p;
if (value > 9)
values = values - 4;
int valuess = 0;
valuess = (ArrIndexvalue) * dx + 1 + (x - 1) * dx - p;
//g.fillRect(valuess, (i + 1) * dy + 1, dx - 2, dy - 2);
g.fillArc(valuess-1, (i + 1) * dy + 1, dx+2, dx+2, 0, 360);
g.setColor(255, 255, 255);
g.drawString(String.valueOf(value), values+1, (i + 1)
* dy, Graphics.TOP | Graphics.LEFT);
}
}
}
} else if (AreaCode == 3) ...{
// 其他行
for (int i = 0; i < rows - 1; i++) ...{
//期号
g.setColor(125, 125, 125);
g.drawString(DrawBallData[i].Str, 2, (i + 1) * dy,
Graphics.TOP | Graphics.LEFT);
for (int j = 0; j < 6; j++) ...{
if ((DrawBallData[i].RedBall[j] <= (1 + AreaCode) * 10)
&& (DrawBallData[i].RedBall[j] > (0 + AreaCode) * 10)) ...{
g.setColor(255, 0, 0);
int ArrIndexvalue = DrawBallData[i].RedBall[j]
- (0 + AreaCode) * 10;
int value = DrawBallData[i].RedBall[j];
int values = 0;
values = (ArrIndexvalue) * dx + (x - 1) * dx + 4 - p;
if (value > 9)
values = values - 4;
int valuess = 0;
valuess = (ArrIndexvalue) * dx + 1 + (x - 1) * dx - p;
//g.fillRect(valuess, (i + 1) * dy + 1, dx - 2, dy - 2);
g.fillArc(valuess-1, (i + 1) * dy + 1, dx+2, dx+2, 0, 360);
g.setColor(255, 255, 255);
g.drawString(String.valueOf(value), values+1, (i + 1)
* dy, Graphics.TOP | Graphics.LEFT);
}
}
//画蓝球
for (int j = 0; j < 2; j++) ...{
if ((DrawBallData[i].BlueBall[j] <= 7)&&(DrawBallData[i].BlueBall[j] > 0))...{
g.setColor(255, 0, 0);
int ArrIndexvalue = DrawBallData[i].BlueBall[j];
int value = DrawBallData[i].BlueBall[j];
int values = 0;
values = (ArrIndexvalue) * dx + (x - 1+3) * dx + 4 - p;
if (value > 9)
values = values - 4;
int valuess = 0;
valuess = (ArrIndexvalue) * dx + 1 + (x - 1+3) * dx - p;
g.setColor(0, 0, 255);
//g.fillRect(valuess, (i + 1) * dy + 1, dx - 2, dy - 2);
g.fillArc(valuess-1, (i + 1) * dy + 1, dx+2, dx+2, 0, 360);
g.setColor(255, 255, 255);
g.drawString(String.valueOf(value), values+1, (i + 1)
* dy, Graphics.TOP | Graphics.LEFT);
}
}
}
}
if (AreaCode == 4) ...{
// 其他行
for (int i = 0; i < rows - 1; i++) ...{ //画蓝球
//期号
g.setColor(125, 125, 125);
g.drawString(DrawBallData[i].Str, 2, (i + 1) * dy,
Graphics.TOP | Graphics.LEFT);

for (int j = 0; j < 2; j++) ...{
if ((DrawBallData[i].BlueBall[j] <= 16)&&(DrawBallData[i].BlueBall[j] > 7))...{
g.setColor(255, 0, 0);
int ArrIndexvalue = DrawBallData[i].BlueBall[j];
int value = DrawBallData[i].BlueBall[j];
int values = 0;
values = (ArrIndexvalue) * dx + (x - 1-7) * dx + 4 - p;
if (value > 9)
values = values - 4;
int valuess = 0;
valuess = (ArrIndexvalue) * dx + 1 + (x - 1-7) * dx - p;
g.setColor(0, 0, 255);
//g.fillRect(valuess, (i + 1) * dy + 1, dx - 2, dy - 2);
g.fillArc(valuess-1, (i + 1) * dy + 1, dx+2, dx+2, 0, 360);
g.setColor(255, 255, 255);
g.drawString(String.valueOf(value), values+1, (i + 1)
* dy, Graphics.TOP | Graphics.LEFT);
}
}}
}
}


public void commandAction(Command arg0, Item arg1) ...{
System.out.print("aaaaaaaaaa");
}
}
这是一个使用J2ME(Java Micro Edition)和Eclipse开发的双色球号码走势图应用。代码中创建了MainForm类,实现了CommandListener接口,并包含了添加、删除、修改记录以及显示走势图、奇偶和值等功能。应用程序通过RecordStoreE来存储和管理数据,同时提供了用户界面交互,如选择操作(增删改查)和切换不同区域的走势图。

被折叠的 条评论
为什么被折叠?



