东方尚智,3G数字内容学院j2me教程---记录仓库,电子书的实现
视频播放地址:http://www.3gdci.com/article/news/20090914152557.htm
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class MainApp extends MIDlet{
public Alert logo;//欢迎界面
public List menu;//书列表页面
public Form content;//书的内容页面
public Command cmd_read=new Command("开使阅读",Command.SCREEN,1);
public Command cmd_goto=new Command("进入书签",Command.SCREEN,1);
public Command cmd_setA=new Command("设定书签",Command.SCREEN,1);
public Command cmd_NextP=new Command("下一页",Command.SCREEN,1);
public Command cmd_PreP=new Command("上一页",Command.SCREEN,1);
public Command cmd_Help=new Command("帮助",Command.SCREEN,1);
public Command cmd_Exit=new Command("退出",Command.SCREEN,1);
public Command cmd_Back=new Command("返回",Command.BACK,1);
public BooKRMS bookrms=new BooKRMS();
public int nowp=1;
public String bkname;
public static MainApp midlet;
public CommandListener action=
new CommandListener()
{ public void commandAction(Command c,Displayable dis)
{
if(c==cmd_Exit){notifyDestroyed();}
if(c==cmd_Help){}
if(c==cmd_NextP)
{content.deleteAll();
if(bkname.indexOf("喜剧之王")>=0){
bkname="xjzw";
}
nowp++;
//获取当前页
String nowpcon=bookrms.getPage(bkname, nowp);
content.append(nowpcon);
}
if(c==cmd_PreP)
{content.deleteAll();
if(bkname.indexOf("喜剧之王")>=0){
bkname="xjzw";
}
nowp--;
//获取当前页
String nowpcon=bookrms.getPage(bkname, nowp);
content.append(nowpcon);
}
if(c==cmd_read)//开始阅读
{ content.deleteAll();
int n=menu.getSelectedIndex();
bkname=menu.getString(n);
content.setTitle(bkname);
if(bkname.indexOf("喜剧之王")>=0){
bkname="xjzw";
}
nowp=1;
//获取当前页
String nowpcon=bookrms.getPage(bkname, nowp);
content.append(nowpcon);
Display.getDisplay(midlet).setCurrent(content);
}
if(c==cmd_setA)
{
bookrms.saveA(bkname, nowp);
Alert sms=new Alert("成功");
sms.setTimeout(1000);
sms.setString("书签设定成功");
Display.getDisplay(midlet).setCurrent(sms,content);
}
if(c==cmd_goto)//进入书签
{
int n=menu.getSelectedIndex();
String bkname=menu.getString(n);
content.setTitle(bkname);
if(bkname.indexOf("喜剧之王")>=0){
bkname="xjzw";
}
//获取当前页 获取书签
String nowp=bookrms.getPage(bkname,bookrms.getA(bkname));
content.append(nowp);
Display.getDisplay(midlet).setCurrent(content);
}
if(c==cmd_Back)
{
Display.getDisplay(midlet).setCurrent(menu);
}
}
};
public MainApp()
{ midlet=this;
logo=new Alert("2009最受欢迎的手机软件");
try{
Image im=Image.createImage("/logo.png");
logo.setImage(im);
}catch(Exception e){}
logo.setTimeout(3000);
menu=new List("经典电影剧本",List.IMPLICIT);
menu.append("《月光宝盒》", null);
menu.append("《仙履奇缘》", null);
menu.append("《唐伯虎点秋香》", null);
menu.append("《算死草》", null);
menu.append("《喜剧之王》", null);
menu.append("《食神》", null);
menu.append("《国产零零柒》", null);
menu.append("《大内密探零零发》", null);
menu.append("《武状元苏乞儿》", null);
menu.append("《龙过鸡年》", null);
menu.append("《破坏之王》", null);
menu.append("《少林足球》 ", null);
menu.append("《鹿鼎记》 ", null);
menu.append("《神龙教》 ", null);
menu.addCommand(cmd_read);
menu.addCommand(cmd_goto);
menu.addCommand(cmd_Help);
menu.addCommand(cmd_Exit);
menu.setCommandListener(action);
content=new Form("");
content.addCommand(cmd_Back);
content.addCommand(cmd_PreP);
content.addCommand(cmd_NextP);
content.addCommand(cmd_goto);
content.addCommand(cmd_setA);
content.setCommandListener(action);
}
public void startApp()
{
Display.getDisplay(this).setCurrent(logo,menu);
bookrms.setUpBook();//安装所有书到RMS
}
public void destroyApp(boolean f)
{}
public void pauseApp()
{}
}
//////////////////////////////////////////////////////////////////////////////////
import java.io.*;
import javax.microedition.rms.RecordStore;
//完成图书操作功能
public class BooKRMS {
private String getPageFromFile(String bname,int n)
{
InputStream is=this.getClass().getResourceAsStream("/"+bname+"/"+bname+"0"+n+".txt");
StringBuffer sb=new StringBuffer();
String con="";
int tmp=0;
try{
while(tmp!=-1)//-1表示文件结束
{
tmp=is.read();//读一个字符
sb.append((char)tmp);
}
con=new String(sb);
con=new String(con.getBytes("iso8859-1"),"utf-8");
//System.out.println("读取了"+con);
}catch(Exception ee){}
return con;
}
private void savePageToRMS(String bname,String n)
{try{
RecordStore rs=RecordStore.openRecordStore(bname, true);
byte dat[]=n.getBytes();
rs.addRecord(dat, 0, dat.length);
rs.closeRecordStore();
System.out.println("save ok");
}catch(Exception e){}
}
public void setUpBook()//安装图书到RMS
{ try{
RecordStore rs=RecordStore.openRecordStore("bkinfo", false);
return;
}catch(Exception e){
try{
RecordStore rs=RecordStore.openRecordStore("bkinfo", true);
rs.closeRecordStore();
}catch(Exception e2){}
}
//得到每本图书的所有页
//存到RMS
for(int i=1;i<=3;i++)//先完成第一本书
{
String nowp=this.getPageFromFile("xjzw",i);
this.savePageToRMS("xjzw", nowp);
}
/////...
}
// 获取某本图书的第n页
public String getPage(String bname,int n)
{String con="";
try{
RecordStore rs=RecordStore.openRecordStore(bname, true);
byte dat[]=rs.getRecord(n);
con=new String(dat);
rs.closeRecordStore();
System.out.println("open ");
}catch(Exception e){}
return con;
}
//保存书签
public void saveA(String bkname,int p)
{try{
RecordStore rs=RecordStore.openRecordStore(bkname+"a", true);
byte dat[]=new byte[4];
dat[0]=(byte)(p>>24);
dat[1]=(byte)(p>>16);
dat[2]=(byte)(p>>8);
dat[3]=(byte)p;
if(rs.getNumRecords()>0)
rs.setRecord(1,dat, 0, dat.length);
else
rs.addRecord(dat, 0, dat.length);
rs.closeRecordStore();
System.out.println("open ");
}catch(Exception e){}
}
//读取书签
public int getA(String bkname)
{ int p=1;
try{
RecordStore rs=RecordStore.openRecordStore(bkname+"a", true);
byte dat[]=rs.getRecord(1);
p=dat[0]<<24+dat[1]<<16+dat[2]<<8+dat[3];
rs.closeRecordStore();
System.out.println("open ");
}catch(Exception e){
return 1;
}
return p;
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sdhjob/archive/2009/09/22/4579471.aspx
分享到:
相关推荐
j2me电子书 j2me电子书 j2me电子书
《J2ME项目:手机电子书阅读器源码解析》 在移动开发领域,J2ME(Java 2 Micro Edition)曾是广泛应用于早期智能手机和平板电脑的开发平台,尤其在功能手机时代,J2ME应用程序占据了一席之地。本项目以"手机电子书...
本实验报告详细记录了三个J2ME实验:创建简单的Java ME应用、制作一个简单的电子阅读软件以及涉及蓝牙功能的实验。这三个实验涵盖了J2ME的基础知识,包括项目的创建、用户界面元素的使用、程序调试以及基本的交互...
Bluetooth, Java 2 Micro Edition (J2ME), and Java APIs for Bluetooth Wireless Technology (JABWT) are discussed. The necessary infrastructure for developing Java Bluetooth applications are also ...
接下来,让我们深入探讨如何实现手机电子书的制作: 1. **项目结构**:一个典型的J2ME电子书项目通常包含资源文件(如文本和图片)、源代码文件(.java)和配置文件(如.jad和.midlet.jar)。在这个例子中,关键...
本文将深入探讨如何在J2ME中实现电话记录的储存功能,并提供相关的源码解析。 首先,我们需要理解J2ME的基本架构。J2ME主要由配置(Configurations)和Profile(Profiles)组成,其中Mobile Information Device ...
J2ME电子书源码可能是开发者为了展示如何在J2ME环境下实现电子书阅读功能而编写的,它可能包含了用户界面设计、文本渲染、翻页效果、书签功能等多个方面的实现。 在J2ME开发中,主要使用的是MIDP(Mobile ...
《J2ME开发精解》是一本专注于Java Micro Edition(J2ME)开发的专业书籍,其前两章和完整的随书源码构成了我们讨论的核心内容。J2ME是Java平台的一个子集,主要设计用于资源有限的设备,如移动电话、嵌入式系统和...
### J2ME记录管理存储详解 #### 一、引言 在J2ME(Java 2 Micro Edition)的开发环境中,记录管理存储(Record Management System,简称RMS)扮演着关键角色,它为MIDlet应用程序提供了数据持久化存储的能力。...
本话题聚焦于使用J2ME来创建JAR格式的电子书软件,这是一种在功能手机或早期智能手机上常见的应用类型。 首先,我们要理解JAR(Java Archive)文件。JAR是Java平台特有的文件格式,用于打包Java类文件、资源文件...
**基于J2ME平台的手机应用程序研究与开发** J2ME,全称为Java 2 Micro Edition,是Java技术的一个重要分支,专为嵌入式设备和移动设备设计,特别是功能手机。它提供了一套框架和API,使得开发者可以创建能够在各种...
J2ME(Java 2 Micro Edition)是Java平台的一个版本,专门针对移动设备和嵌入式系统设计,如手机、PDA、消费电子产品等。它基于Java的核心语言特性,提供了资源受限的设备所需的特定API集合,如用户界面、网络连接、...
J2me无线开发电子书,欢迎大家下载!!!!!!!!
《J2ME飞行射击手机游戏开发详解》 在移动设备技术早期,Java 2 Micro Edition(J2ME)是开发手机应用程序的主流平台之一,尤其是对于游戏开发而言。本篇文章将深入探讨“J2ME飞机射击手机游戏完整代码版”所涉及的...
**J2ME中文教程FromIBM手机开发电子书** Java 2 Micro Edition(J2ME)是Java技术在嵌入式设备和移动设备上的应用平台,主要用于开发和运行移动应用程序,如智能手机、数字电视和游戏机等。IBM作为全球知名的技术...
实用J2ME记录库工具类,在很多代码中都要用到
在2000年代初期,J2ME是许多非智能手机上实现互联网浏览的主要技术,其中“j2me手机浏览器”就是这样一个应用。这个应用允许用户在他们的手机上访问网页,尽管其功能和性能可能与现代智能手机上的高级浏览器相比有限...
**J2ME实现手机QQ源代码详解** J2ME(Java 2 Micro Edition)是Java平台的一个子集,主要用于开发移动设备和嵌入式设备的应用程序。在这个项目中,我们探讨的是如何使用J2ME技术来实现手机上的QQ应用程序。手机QQ...