rms.java

来自「用J2ME开发的俄罗斯方块」· Java 代码 · 共 87 行

JAVA
87
字号
package tetris;

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;
import javax.microedition.rms.RecordStoreFullException;
import javax.microedition.rms.RecordStoreNotOpenException;

import tetris.Account;

public class Rms extends Form implements CommandListener {

	private static final String RECORD_STORE_NAME = "tetris";

	private Command CMD_OK, CMD_BACK;

	private RecordStore recordStore;

	private TextField tfname;

	private Score score;

	private MIDlet midlet;

	public Rms(Score score, MIDlet mid) {
		super("------英雄榜------");
		midlet = mid;
		tfname = new TextField("添加英雄", "", 20, 0);
		this.score = score;
		CMD_OK = new Command("确定", Command.OK, 1);
		CMD_BACK = new Command("返回", Command.BACK, 1);
		addCommand(CMD_OK);
		addCommand(CMD_BACK);
		append(tfname);
		setCommandListener(this);
	}

	public void add() {
		try {
			recordStore = RecordStore.openRecordStore(RECORD_STORE_NAME, true);
			Filter filter = new Filter(score.getScore());
			Comparator com=new Comparator();
			RecordEnumeration re = recordStore.enumerateRecords(filter, com,
					true);
			if (re.numRecords() > 0) {
				append("记录已存在!");
				back();
			} else {
				Account a = new Account(tfname.getString(), score.getScore());
				byte[] data = a.encode();
				recordStore.addRecord(data, 0, data.length);
				re.destroy();
				recordStore.closeRecordStore();
				append("记录已保存!");
				back();
			}
		}catch (RecordStoreNotOpenException e) {
			e.printStackTrace();
		} catch (RecordStoreFullException e) {
			e.printStackTrace();
		} catch (RecordStoreException e) {
			e.printStackTrace();
		}
	}

	public void commandAction(Command c, Displayable arg1) {
		String cmd = c.getLabel();
		if (cmd.equals("确定")) {
			add();
		} else if (cmd.equals("返回")) {
			back();
		}
	}

	private void back() {
		
		
	}

}

⌨️ 快捷键说明

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