📄 setuprecord.java
字号:
import java.io.*;
import javax.microedition.rms.*;
import javax.microedition.lcdui.*;
public class SetupRecord
{
private RecordStore setupRecord = null;
private boolean isModified = false;
public SetupRecord()
{
try
{
setupRecord=RecordStore.openRecordStore("SetupRecord",true);
}
catch(RecordStoreException e)
{
//System.out.println("打开PhaseRecord出现异常");
Alert alert=new Alert("Message","打开用户设置记录存储文件时出现错误",null,AlertType.WARNING);
Chess.dis.setCurrent(alert);
Chess.quitApp();
}
}
public Setup getUserSetup()
{
int recordNumber = 0;
Setup setup = null;
try
{
recordNumber = setupRecord.getNumRecords();
}
catch (RecordStoreException e)
{
//System.out.println("获取记录个数时出现异常");
Alert alert=new Alert("Message","获取记录个数时出现异常",null,AlertType.WARNING);
Chess.dis.setCurrent(alert);
Chess.quitApp();
}
if(recordNumber == 0)
{
int[][] n = new int[9][3];
n[0][0] = 0;
n[0][1] = 0;
n[0][2] = 0;
n[1][0] = 255;
n[1][1] = 255;
n[1][2] = 0;
n[2][0] = 0;
n[2][1] = 200;
n[2][2] = 50;
n[3][0] = 255;
n[3][1] = 255;
n[3][2] = 0;
n[4][0] = 255;
n[4][1] = 0;
n[4][2] = 0;
n[5][0] = 0;
n[5][1] = 255;
n[5][2] = 0;
n[6][0] = 0;
n[6][1] = 0;
n[6][2] = 255;
n[7][0] = 255;
n[7][1] = 255;
n[7][2] = 0;
n[8][0] = 255;
n[8][1] = 0;
n[8][2] = 255;
setup = new Setup();
setup.setCanvas(n);
setup.setSleepTime(200);
}
else
{
byte[] data = null;
try
{
data = setupRecord.getRecord(1);
}
catch (RecordStoreException e)
{
//System.out.println("获取设置时出现异常");
Alert alert=new Alert("Message","获取设置时出现异常",null,AlertType.WARNING);
Chess.dis.setCurrent(alert);
Chess.quitApp();
}
setup = setupDeserialize(data);
}
return setup;
}
public int closeSetupRecord()
{
try
{
setupRecord.closeRecordStore();
}
catch(RecordStoreException e)
{
//System.out.println("关闭PhaseRecord时出现异常");
//errorDeal.push("RestRecord#2", "关闭残局记录存储文件时出现错误");
return 1;
}
return 0;
}
public int modifySetup(Setup setup)
{
byte[] data = setupSerialize(setup);
int n = 0;
try
{
n = setupRecord.getNumRecords();
}
catch (RecordStoreException e)
{
//System.out.println("获取设置记录个数时出现了异常");
return 5;
}
if(n == 0)
{
try
{
setupRecord.addRecord(data, 0, data.length);
}
catch (RecordStoreException e)
{
//System.out.println("添加设置记录时出现了异常");
return 4;
}
return 0;
}
else
{
try
{
setupRecord.setRecord(1, data, 0, data.length);
}
catch(RecordStoreNotOpenException e)
{
//System.out.println("更新设置时出现RecordStoreNotOpenException异常"+e);
//errorDeal.push("RestRecord#18", "重命名残局记录时打开存储文件错误");
return 1;
}
catch(InvalidRecordIDException e)
{
//System.out.println("更新设置时出现InvalidRecordIDException异常"+e);
//errorDeal.push("RestRecord#19", "重命名残局记录时出现非法ID错误");
return 2;
}
catch(RecordStoreException e)
{
//System.out.println("更新设置时出现RecordStoreException异常"+e);
//errorDeal.push("RestRecord#20", "重命名残局记录时出现未知存储文件操作错误");
return 3;
}
}
return 0;
}
//**************************序列化与反序列化方法部分
private byte[] setupSerialize(Setup setup)
{
DataOutputStream dos=null;
ByteArrayOutputStream baos=null;
try
{
baos=new ByteArrayOutputStream();
dos=new DataOutputStream(baos);
//System.out.println("开始序列化");
int[][] n = setup.getCanvas();
for(int i = 0; i < 9; i++)
{
for(int j = 0; j < 3; j++)
{
dos.writeInt(n[i][j]);
}
}
dos.writeInt(setup.getSleepTime());
}
catch (IOException e)
{
//System.out.println("序列化setupRecord时出现了异常");
//errorDeal.push("SetupRecord#22", "序列化设置时出现输入输出错误");
Alert alert=new Alert("Message","序列化设置时出现输入输出错误",null,AlertType.WARNING);
Chess.dis.setCurrent(alert);
Chess.quitApp();
}
return baos.toByteArray();
}
private Setup setupDeserialize(byte[] data)
{
ByteArrayInputStream bais=null;
DataInputStream dis=null;
Setup setup = new Setup();
try
{
bais = new ByteArrayInputStream(data);
dis = new DataInputStream(bais);
int[][] n = new int[9][3];
for(int i = 0; i < 9; i++)
{
for(int j = 0; j < 3; j++)
{
n[i][j] = dis.readInt();
}
}
int sleepTime = dis.readInt();
setup.setCanvas(n);
setup.setSleepTime(sleepTime);
}
catch (IOException e)
{
//System.out.println("反序列化setupRecord时出现了异常");
//errorDeal.push("SetupRecord#23", "反序列化设置时出现输入输出错误");
Alert alert=new Alert("Message","反序列化设置时出现输入输出错误",null,AlertType.WARNING);
Chess.dis.setCurrent(alert);
Chess.quitApp();
}
return setup;
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -