用 J2me 写 双色球号码走势图(eclipse) MainFormPackage

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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(
2551280);
        
// 画横线
        for (int i = 0; i < rows; i++{
            g.drawLine(
0, i * dy, cols * dx, i * dy);
        }

        
// 画竖线
        g.drawLine(0 * dx + x * dx - p, 00 * dx + x * dx - p, cols * dy);
        g.drawLine(
2 * dx + x * dx - p, 02 * dx + x * dx - p, cols * dy);
        g.drawLine(
4 * dx + x * dx - p, 04 * dx + x * dx - p, cols * dy);

        
// 第一行
        g.drawString(" 期号"00, Graphics.TOP | Graphics.LEFT);
        g.setColor(
128640);
        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(125125125);
            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(
0064);
            g.drawString(String.valueOf(JJ) 
+ ":" + String.valueOf(OO), 0 * dx
                    
+ x * dx, (i + 1* dy, Graphics.TOP | Graphics.LEFT);
            g.setColor(
12800);
            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(
00255);
            g.fillArc(ThisP, (i 
+ 1* dy + 510100360);
            g.setColor(
00255);
            
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(
2551280);
        
// 画横线
        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(
0125255);
            
// 画横线
            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(
2551280);

        }
 else if (AreaCode == 4{

            g.setColor(
0125255);
            
// 画横线
            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(
2551280);
        }

        
// 第一行
        if (AreaCode >= 3)// 蓝号码
        {
            
if (AreaCode == 3{
                g.drawString(
" 期号"00, Graphics.TOP | Graphics.LEFT);
                
for (int k = 0; k < cols; k++{
                    
if (k < 3{
                        g.setColor(
2551280);
                        g.drawString(String.valueOf((k) 
+ 1 + (0 + AreaCode)
                                
* 10), k * dx + (x) * dx + 2 - p, 0,
                                Graphics.TOP 
| Graphics.LEFT);

                    }
 else {
                        g.setColor(
0125255);
                        g.drawString(String.valueOf(k 
- 2), k * dx + (x) * dx
                                
+ 2 - p, 0, Graphics.TOP | Graphics.LEFT);

                    }

                }

                g.setColor(
2551280);
            }
 else if (AreaCode == 4{
                g.setColor(
0125255);
                g.drawString(
" 期号"00, 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(
2551280);

            }

        }
 else {
            g.drawString(
" 期号"00, 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(125125125);
                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(
25500);
                        
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+20360);
                        g.setColor(
255255255);
                        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(
125125125);
                    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(
25500);
                            
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+20360);
                            g.setColor(
255255255);
                            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(
25500);
                            
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(
00255);
                            
//g.fillRect(valuess, (i + 1) * dy + 1, dx - 2, dy - 2);
                            g.fillArc(valuess-1, (i + 1* dy + 1, dx+2, dx+20360);
                            g.setColor(
255255255);
                            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(125125125);
                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(
25500);
                        
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(
00255);
                        
//g.fillRect(valuess, (i + 1) * dy + 1, dx - 2, dy - 2);
                        g.fillArc(valuess-1, (i + 1* dy + 1, dx+2, dx+20360);
                        g.setColor(
255255255);
                        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");
    }


}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值