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简表将通过提供 java到 java的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!"); } } } |
| 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; } } |
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 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器