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

📄 reg.java

📁 j2me上的FIR游戏 从原代码光盘上复制
💻 JAVA
字号:


import javax.microedition.lcdui.*;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;

public class Reg
    implements CommandListener
{

    public Reg(FiveMIDlet m)
    {
        midFive = m;
        registered = false;
        nTriedLeft = 0x989680;
        serialNo = (int)(System.currentTimeMillis() % 0xf4240L);
        load();
        save();
    }

    public boolean canPlay()
    {
        return registered || nTriedLeft > 0;
    }

    public boolean registered()
    {
        return registered;
    }

    public int nTriedLeft()
    {
        return nTriedLeft;
    }

    public void play()
    {
        if(!registered && nTriedLeft > 0)
            save();
    }

    public void register(Display display)
    {
        frmReg = new Form("\u6CE8\u518C\u4E94\u5B50\u68CB");
        frmReg.append("\u60A8\u7684\u7CFB\u5217\u53F7:[" + serialNo + "]\n" + "\u8BF7\u628A\u8BE5\u53F7\u7801\u544A\u77E5\u4F5C\u8005,\u5E76\u83B7\u5F97\u6CE8\u518C\u53F7.\u8054\u7CFB\u65B9\u6CD5:\n" + "eMail:yinxd0@sohu.com\n" + "\u79FB\u52A8QQ:7538725");
        tfRegNo = new TextField("\u8BF7\u8F93\u5165\u6CE8\u518C\u53F7:", "", 8, 2);
        frmReg.append(tfRegNo);
        siInfo = new StringItem(null, null);
        frmReg.append(siInfo);
        cmdOk = new Command("\u786E\u5B9A", 4, 1);
        cmdCancel = new Command("\u53D6\u6D88", 3, 2);
        frmReg.addCommand(cmdOk);
        frmReg.addCommand(cmdCancel);
        frmReg.setCommandListener(this);
        display.setCurrent(frmReg);
    }

    private void freeRes()
    {
        frmReg = null;
        cmdOk = null;
        cmdCancel = null;
        siInfo = null;
        tfRegNo = null;
    }

    public void commandAction(Command c, Displayable s)
    {
        if(c == cmdOk)
        {
            String sRegNo = tfRegNo.getString();
            int regNo = 0;
            try
            {
                regNo = Integer.parseInt(sRegNo);
            }
            catch(Exception _ex) { }
            if(isRegNoOk(regNo))
            {
                registered = true;
                save();
                midFive.backHome();
                freeRes();
            } else
            {
                siInfo.setText("\u6CE8\u518C\u53F7\u4E0D\u6B63\u786E!\u8BF7\u91CD\u65B0\u8F93\u5165!");
            }
        } else
        if(c == cmdCancel)
        {
            midFive.backHome();
            freeRes();
        }
    }

    private boolean isRegNoOk(int regNo)
    {
        return regNo == serialNo;
    }

    private void save()
    {
        try
        {
            byte bs[] = new byte[5];
            bs[0] = (byte)(registered ? 1 : 0);
            bs[1] = (byte)nTriedLeft;
            bs[2] = (byte)(serialNo >> 16 & 0xff);
            bs[3] = (byte)(serialNo >> 8 & 0xff);
            bs[4] = (byte)(serialNo & 0xff);
            RecordStore rs = RecordStore.openRecordStore("Reg", true);
            if(rs.getNumRecords() >= 1)
                rs.setRecord(1, bs, 0, 5);
            else
                rs.addRecord(bs, 0, 5);
            rs.closeRecordStore();
        }
        catch(RecordStoreException _ex) { }
    }

    private void load()
    {
        try
        {
            RecordStore rs = RecordStore.openRecordStore("Reg", false);
            if(rs.getNumRecords() >= 1)
            {
                byte bs[] = rs.getRecord(1);
                if(bs.length >= 5)
                {
                    registered = bs[0] == 1;
                    nTriedLeft = bs[1];
                    if(nTriedLeft > 10)
                        nTriedLeft = 10;
                    int b1 = bs[2];
                    if(b1 < 0)
                        b1 += 256;
                    int b2 = bs[3];
                    if(b2 < 0)
                        b2 += 256;
                    int b3 = bs[4];
                    if(b3 < 0)
                        b3 += 256;
                    serialNo = (b1 << 16) + (b2 << 8) + b3;
                }
            }
            rs.closeRecordStore();
        }
        catch(RecordStoreException _ex) { }
    }

    private FiveMIDlet midFive;
    private boolean registered;
    private static long nTriedMax = 0x989680L;
    private int nTriedLeft;
    private int serialNo;
    private Form frmReg;
    private StringItem siInfo;
    private TextField tfRegNo;
    private Command cmdOk;
    private Command cmdCancel;

    static 
    {
        nTriedMax = 0x989680L;
    }
}

⌨️ 快捷键说明

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