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

📄 myrecord.java

📁 J2ME编程的50个例子,适合掌上系统的编程
💻 JAVA
字号:
package demo;
import javax.microedition.lcdui.Graphics;
import javax.microedition.rms.RecordStore;

public class MyRecord{
	private int m_nCurRecord	= 0;	//当前得分
	private int m_nHighRecord = 0;		//历史最高得分
	private String m_strName;			//RMS系统中数据表的名称
	
	//构造方法,参数strName为存储数据的表单名称
	public MyRecord( String strName ){
		m_strName = strName;
		Load();
	}
	//获取当前得分
	public int getCurRecord(){
		return m_nCurRecord;
	}
	//设置当前得分
	public void setCurRecord( int record ){
		m_nCurRecord = record;
		//如果当前得分高于历史最高分,则保存
		if( m_nHighRecord < m_nCurRecord ){
			m_nHighRecord = m_nCurRecord;	
			Save();
		}
	}
	//存储历史最高分
	public void Save(){
		try{			
			byte b[] = new byte[4];
			int temp = m_nHighRecord;
			//将int型数据,保存到byte数组
			for(int i = b.length - 1; i >= 0; i--){
				b[i] = new Integer(temp & 0xff).byteValue();
				temp = temp >> 8;
			}			
			//打开RecordStore,没有则新建			
			RecordStore rs = RecordStore.openRecordStore(
					m_strName,true);			
			if( rs.getNumRecords() > 0 ){	//如果记录数大于0
				rs.setRecord(1, b, 0, b.length);  //更改第一条记录
			}			
			else{     
				//如果没有记录,则添加记录	
				rs.addRecord(b,0,b.length);	
			}		
			rs.closeRecordStore();
		}	
		catch (Exception ex){}	
	}	
	//读取历史最高分
	public boolean Load(){
		try{			
			RecordStore rs = 
				RecordStore.openRecordStore( m_strName, false);			
			byte b[] = rs.getRecord(1);
			m_nHighRecord = 0;
			for (int i = 0; i < 3; i++){
				//如果b[i]小于0,则将b[i]转换成相应的正数
				if( b[i] < 0 )	
					m_nHighRecord += ( b[i] + 256 );
				else
					m_nHighRecord += b[i];	
				m_nHighRecord *= 256;	
			}					
			m_nHighRecord += b[3];	
			if( b[3] < 0 )	
				m_nHighRecord += 256;				
			rs.closeRecordStore();
		}
		catch (Exception ex){
			return false;
		}
		return true;		
	}
	//显示历史最高分记录
	//参数g对应手机屏幕,scrWidth与scrHeight分别是屏幕的宽与高
	public void Paint( Graphics g, int scrWidth, int scrHeight ){
		StringBuffer buffer = new StringBuffer();
		buffer.append("历史最高分:");
		buffer.append(m_nHighRecord);	
		int x = scrWidth / 2;
		int y = scrHeight / 2 - 20;
		g.drawString(buffer.toString(), x, y, 
				Graphics.TOP|Graphics.HCENTER );
		
		buffer.delete(0,buffer.length());
		buffer.append("本次得分:");
		buffer.append(m_nCurRecord);
		y = y + 40;
		g.drawString(buffer.toString(), x, y, 
				Graphics.TOP|Graphics.HCENTER );
	}
}

⌨️ 快捷键说明

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