选择显示字体大小

java嵌入式开发之j2me--五

midp要求平台设备提供一个机制用来储存简单的数据记录,通过正常的平台事件,比如重新启动和电池更新维护系统的完整性。 midp称一个持久数据库
recordstore。 在我们的示例中, midlet打开并添加一条记录到 " mutualfundquotes " recordstore。
正如我们的演示程序,能添加到 recordstore中的唯一一种类型的记录是字节数组。 相同的 recordstore是一个资源,它可以通过套件共享。
根据 midp规范, 当 midlet从平台中删除后,recordstore也会被从平台中删除。



  pda简表



  palm公司是开发pda简表规范的领头人, 这个简表也是完善了 cldc,在相当长的一段时间内,它都将是 kjava类程序包的替代品。
java规范建议这个 profile至少应当提供两个核心功能片段: 一个用户界面显示工具包,适合于 "有限的尺寸和深度显示 "和一个持久数据存储器机制。
显示工具包应该是抽象窗口工具包的一个子集, 而持久机制将为应用程序、数据、配置/环境信息提供简单的数据存储。



  foundation简表



  下面三种简表不是非常常见, 这三种简表的职责都是为了完善 cdc。 personal和 rmi简表实际上是 foundation简表的扩展。
foundation简表的任务是担任一个基础简表,便于以后开发出来的提供图形用户接口、 网络等功能的简表附着在它之上。 除了用于基础简表,
foundation简表还提供完整网络的支持,不管有没有使用图形用户接口。



  personal简表



  在当前的规范需求下, personal简表提供下一代 personaljava环境。这个简表允诺,提供互联网连接性和 web保真度以及一个能够运行
java applets的 gui



  rmi简表



  回想一下 cdc配置为共享的、固定网络连接信息设备提供最小的 java环境。 rmi简表将通过提供 javajava的rmi来协助提供更好的网络连接性。
通过使用 j2se ( 1.2.x或更高版本的 ) rmi,这个简表将允许这些网络设备与其他系统应用程序交互操作 (这个系统不必也运行
j2me )。



  kjava



  正如前面提到的那样, kjava类是最初提供的一个供测试用的类,在 palm设备上运行早期的 kvm和配置版本。 它们将被 pda简表代替。
kjava类扩展了 cldc并且提供一个图形用户接口、 palm数据库访问,简单集合类和一个三角法计算器。



  在代码段2中,我使用 com.sun.kjava重写了 midp fundtracker程序,让它在 palm上工作。 和前面的程序一样,这个简单的程序允许用户输入一个公基金代号并从www上的金融报价服务商那里取回报价。



  kjava应用程序被称作 spotlet。 事实上,一个应用程序可以由很多 spotlet组成,但是在任何时间只有一个 spotlet可以显示在
palm屏幕上。 在我们的例子中,我们创建一个基本 spotlet-- requestformspotlet.java,为我们的两个
spotlets子类提供用户界面。代码段 2扩展了基本的 requestformspotlet以便得到并储存一个报价。 retrievespotlet也扩展了基本
requestformspotlet并允许储存的报价被取回(见图)



  代码段2






import com.sun.kjava.*;



public final class fundspotlet extends requestformspotlet {



public static void main (string args[]) {

new fundspotlet().draw();

}



private void draw() {

initform();

settitle("fund quote requested");

}



public void pendown(int x, int y){

if (getexitbutton().pressed(x,y)){

getgraphic().playsound(graphics.sound_confirmation);

system.exit(0);

}

if (getsymfield().pressed(x,y))

getsymfield().setfocus();

if (getgetbutton().pressed(x,y)) {

quoterequested();

}

}



private void storequote (string fund, string newquote) {



int dbtype = 0x46554e44;

int dbcreator = 0x43415454;

com.sun.kjava.database quotedb;



try {

quotedb = new com.sun.kjava.database(dbtype,

dbcreator, com.sun.kjava.database.readwrite);

if (!quotedb .isopen()) {



com.sun.kjava.database.create(0, "mutualfundquotes",

dbcreator, dbtype, false);

quotedb = new com.sun.kjava.database(dbtype,

dbcreator, com.sun.kjava.database.readwrite);

}

byte[] data = (fund + "#" + newquote).getbytes();

quotedb.addrecord(data);

quotedb.close();

}

catch (exception recordexception) {

system.out.println("unable to store quote and/or use

mutual fund quote database.");

}



}



private void getanddisplayquote() {

string fundsymbol = getsymfield().gettext();

if (fundsymbol.length() > 0) {

string thequote = quoteservice.getquote(fundsymbol);

if (thequote != null) {

storequote(fundsymbol, thequote);

message(thequote);

}

else

message("no quote. check symbol");

}

}



private void quoterequested() {

message("");

getgraphic().playsound(graphics.sound_startup);

if ((getsymfield().gettext().length() > 0)) {

getanddisplayquote();

} else

{

message("symbol required!");

}

}



}








  在 requestformspotlet程序中,类似于 midp中的 display对象,单独的 graphics管理许多 spotlet用户界面显示。它考虑到了屏幕会被清除,显示边界会被建立。
不象 midlet,没有屏幕或画布对象来让我们添加用户界面小组件, 取而代之的是按钮、文本字段等等,直接描画在 spotlet上。
paint()方法利用图形环境从独一无二的 graphics在屏幕上显示小组件。



  我们的midp程序的 quoteservice类的大部分可以重新使用。 因为 kjava没有象 midp中httpconnection这样特定的连接器界面,所以我们必须利用更多标准的一般的连接器结构表单获取
http链接。 为了做到这一点,使用代码段 3中的代码替换 getquotepage()方法。注意注意使用 connector,就像在
midp中我们使用 httpconnection一样。



  代码段3






private static string getquotepage(string symbolstring) {

stringbuffer quotepage = new stringbuffer();

int ch;

try {

inputstream in = connector.openinputstream (

"testhttp://someurl/some_application?page=++&mode=fund&symbol="+

symbolstring);

while ((ch = in.read()) > 0) {

quotepage.append((char)ch);

}

in.close();

return quotepage.tostring();

} catch (ioexception ex) {

system.out.println("exception reading quote from

  http connection");

 return null;

 }

}








  palm设备广泛利用数据库, 你的 palm中的通讯簿、备忘录和记事本应用程序都与数据库有关。 kjava程序包提供了一个非常小的
database类,不仅可以创建并保持应用程序数据,而且可以访问现有的数据库。 如果你熟悉 palm数据库,你可能会对 kjava
database类提供的功能和信息感到失望。 然而,请再次记住, kjava只是一个演示的版本。



  在我们的例子中,我们的 spotlet访问一个 palm数据库 (如果不存在的话,则创建一个新的数据库)来储存公基金报价。每个
palm数据库都必须有名字、创建者 id (一个 palm登记的唯一的标识号 ) 和一个指定到某个单独应用程序的类型号。 试图打开数据库要通过尝试创建一个带有
id信息的数据库实例来实现。 就象 midp recordstore,记录被添加进 kjava数据库,通过把一个字节数组当成记录添加到数据库中的形式。
出处 yesky    


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons