中华网通行证
用户名 密码

Java进阶篇:RMS从入门到精通系列(1)(2)
中华网科技 http://tech.china.com 2005-09-21 11:45:41
进入BBS】【进入聊天室】【 推荐给朋友 】【浏览字号: 】【关闭窗口

  
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.
MIDletStateChangeException;
import javax.microedition.
rms.RecordStoreException;


public class RMSAnalyzer extends MIDlet
{

private Display display;
private CounterCanvas counterCanvas;
private Alert alert;


protected void startApp()
throws MIDletStateChangeException
{

display =
Display.getDisplay(RMSAnalyzer.this);
alert = new Alert("错误提示");
try
{
String interval =
this.getAppProperty("INTER");
int t = Integer.parseInt(interval);
counterCanvas =
new CounterCanvas(t, 1, this);
}
catch (RecordStoreException e)
{
this.showAlertError(e.getMessage());
}
display.setCurrent(counterCanvas);

}

public Display getDisplay()
{
return display;
}


protected void pauseApp()
{


}


protected void destroyApp
(boolean arg0) throws
MIDletStateChangeException
{

}

public void showAlertError(String message)
{
alert.setString(message);
alert.setType(AlertType.ERROR);
alert.setTimeout(3000);
display.setCurrent(alert);

}

}

import java.util.Timer;
import java.util.TimerTask;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.
MIDletStateChangeException;
import javax.microedition.rms.*;


public class CounterCanvas extends
Canvas implements CommandListener
{

private RMSModel model;
private RMSAnalyzer RMSanalyzer;
private int interTime;
private int counter;
private boolean go = true;
public static Command backCommand =
new Command("退出", Command.EXIT, 3);
public static final int INC = 1;
public final Timer timer = new Timer();

public CounterCanvas(int interTime,
int base, RMSAnalyzer rmsa)
throws RecordStoreException
{
this.interTime = interTime;
this.counter = base;
this.RMSanalyzer = rmsa;
model = new RMSModel(base, RMSanalyzer);
this.addCommand(backCommand);
this.setCommandListener(this);

TimerTask timerTask = new TimerTask()
{
public void run()
{

try
{
model.writeRecord(INC);
counter++;
} catch (RecordStoreFullException e)
{
go = false;
model.deleteRMS();
timer.cancel();
} catch (RecordStoreException e)
{
model.deleteRMS();
RMSanalyzer.showAlertError(e.getMessage());
timer.cancel();
}
repaint();

}
};

timer.schedule(timerTask,
1000, interTime);

}


public void setCounter(int counter)
{
this.counter = counter;
}


public void setInterTime(int interTime)
{
this.interTime = interTime;
}


protected void paint(Graphics arg0)
{

int SCREEN_WIDTH = this.getWidth();
int SCREEN_HEIGHT = this.getHeight();
arg0.drawRect(SCREEN_WIDTH / 10,
SCREEN_HEIGHT / 2,
SCREEN_WIDTH * 4 / 5, 10);
if(RMSanalyzer.getDisplay().isColor())
{
arg0.setColor(128, 128, 255);
}
arg0.fillRect(SCREEN_WIDTH / 10,
SCREEN_HEIGHT / 2, counter, 10);
if (!go)
arg0.drawString("最大值:
" + counter+"K字节", 0, 0,
Graphics.TOP
| Graphics.LEFT);

}

public void commandAction
(Command arg0, Displayable arg1)
{

if (arg0 == backCommand)
{
try
{
model.deleteRMS();
RMSanalyzer.destroyApp(false);
RMSanalyzer.notifyDestroyed();
} catch (MIDletStateChangeException e)
{

}
}

}

}


import javax.microedition.rms.*;

public class RMSModel
{
public static final int K = 1024;
private RecordStore rs;
private int baseCount;
private RMSAnalyzer RMSanalyzer;
public static final
String name = "test";

public RMSModel(int baseCount,
RMSAnalyzer rmsa)
throws RecordStoreException
{
this.baseCount = baseCount;
this.RMSanalyzer = rmsa;
if (rs == null)
{
rs = RecordStore.
openRecordStore(name, true);
writeRecord(baseCount);
}
}

public void writeRecord(int count)
throws RecordStoreException
{
byte[] data = new byte[count * K];
for (int i = 0; i < count; i++)
{
data[i] = 1;
}
rs.addRecord(data, 0, count * K);
}

public void deleteRMS()
{
try
{
rs.closeRecordStore();
RecordStore.deleteRecordStore(name);
} catch (RecordStoreException e)
{
RMSanalyzer.showAlertError
(e.getMessage());
}
}
}

RMSAnalyzer.jad

MIDlet-Jar-Size: 5293
MIDlet-1: RMSAnalyzer,,RMSAnalyzer
MIDlet-Jar-URL: RMSAnalyzer.jar
MicroEdition-Configuration: CLDC-1.0
MIDlet-Version: 1.0.0
MIDlet-Name: RMSAnalyzer
MIDlet-Data-Size: 8192
MIDlet-Vendor: Midlet Suite Vendor
MicroEdition-Profile: MIDP-1.0
INTER: 100

首页 上页 | 1 | 2 | 下页 尾页  共 2

 

50款最具性价比数码相机/MP3推荐!
作者:黑客基地 来源: 

发表言论:
笔  名:
查看评论
﹣相关报道
Java多线程程序设计详细解析 (2005-09-16 16:20:55)
常见的十四种Java开发工具及其特点 (2005-08-10 19:11:05)

﹣精彩回顾
·揭秘越南姑娘的“性契约”(组图)
·中国研制成功银河麒麟操作系统
·近处偷拍野狮性爱 野草丛中见柔情(图)
·难得一见“水下分娩”全程跟拍(组图)
·古代性器具及性惩罚工具(组图)
·揭密中外历史上乱伦的名人们(组图)
·探秘世界各地诡异的干尸新娘(组图)
·隋唐两个王朝的九大著名"绿帽子"(组图)
·另类的惨烈:螳螂血战壁虎谁更凶猛(图)
·一分钟平静死去 注射死刑全过程(图)

进入BBS】【进入聊天室】【 推荐给朋友 】【浏览字号: 】【关闭窗口


潮流·时尚
·市场上的天价手机全搜罗
·一周降幅最大手机导购
·FM调频收音功能手机选购
·索尼爱立信三新机曝光
·诺基亚N73音乐版精品赏
·热门便携笔记本搜索导购
·近期最新上市机型大盘点
·矩阵Matrix鼠标垫细评测
·19寸20寸22寸液晶该买谁
·近期几款热卖MP3大推荐
·四大即将退市经典MP3选购
·06年最火七大DC缺点曝光
·六百万像素超值机型推荐
·诺基亚推出随身小音箱
·LG直板巧克力KG99评测
·MOTO新机即将国内上市
·超低价蓝牙手机导购
·130万像素一样拍出好照片
·诺基亚两款蓝牙耳机新品
·索爱纯美折叠机Z558评测

软件下载
·豪杰大眼睛 V2.5
·Foxmail V6.5
·天网防火墙Athena
·极品五笔 V6.8
·PPS网络电视
·超级兔子魔法设置
中华网搜索
站内搜索
全网搜索




热门搜索
耳机 印刷 手机 拖鞋
减速机 钟表 成人用品
减肥 枸杞 T恤 升降机
心理 健康 彩票 招聘
礼品 旅游 猎头 培训

产品服务
·机会!机会不容错过
·中华商机,搜索创新
·准确快捷,搜你所搜
·¥来¥往,尽在中华邮
·中华搜索,贴心搜索




科技频道主编信箱