知识大全 开发一个简单的KJava应用程序示例

Posted 文件

篇首语:会挽雕弓如满月,西北望,射天狼。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 开发一个简单的KJava应用程序示例相关的知识,希望对你有一定的参考价值。

开发一个简单的KJava应用程序示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  无论学习什么新事物 都讲究循序渐进 学习J ME也不例外 在此我想先介绍一下使用J ME开发Palm上的一个小的应用程序 再深入探讨开发更加复杂的应用程序 好 那我么就开始吧    第一  获得 J ME    你可以从Sun网站上下载到 J ME CLDC文件 第一个文件是 j me_cldc_ _ src winsol zip 它包括所有开发 CLDC应用程序时需要的类库 除了包括类库以外 它还包括源代码以及 Windows和 UNIX下的可执行代码 用于 MIDP规定的 Java虚拟机引用实现 看了前几篇文章的读者肯定都知道 这里提到的Java虚拟机就是 K虚拟机 ( KVM ) 有了这个文件 在开发过程中 你就可以在个人电脑上调试程序 而不用把这些程序下载到你的手持设备上     第二个文件是 j me_cldc _ src palm_overlay zip 它包括一个用于运行 Palm操作系统的设备的 KVM的实现 以及把 class文件通过一个 Java编译程序生成可执行 Palm文件的工具 注意 这是一个用于 Palm操作系统的 CLDC个别实现 如果使用针对其它的设备的实现的话 你的 Java应用程序也可以在其他设备上运行     为了开发用于 Palm OS设备的应用程序 你必需在你的计算机上安装这两个Zip文件 在本文中 我假设你已经在 C盘中安装了 CLDC文件夹 注意 为了开发 CLDC应用程序 你并不需要一个特定的 Java编译程序 你可以使用 J SE带有的编译程序 唯一的差别就是 你必须在编译的时候更换成J ME类库所在的路径 你还要使用下载到的 CLDC中带有的特定软件来处理生成的 class文件    第二  运行文档附带的应用程序示例    你从Sun网站上下载的文件中包含了许多示例应用程序的源程序以及编译好的版本 你可以在你的台式机上 使用 KVM来运行这些示例应用程序 运行这些应用程序可以使你对一个 CLDC应用程序有一个感性认识 在运行这些程序之前 你必要启动一个命令行界面 然后输入下列命令   set cldc_classpath = c:;   set bin = %bin%;c:  cd     好 现在你已经设置了环境变量并进入了保存示例应用程序的目录 你就可以开始运行它们了 比如说 为了运行 UITest程序 输入 kvm classpath %cldc_classpath% UITest    你也可以看看 Pong这个游戏程序 请在命令行输入下面的命令 kvm classpath %cldc_classpath% Pong    是不是挺好玩 你可以试一试运行每个示例应用程序 稍后 我们还要使用相同的方法来运行我们在台式机中开发的应用程序 第三节 构建一个 Palm应用程序    好 现在你对 J ME的程序有一点感性认识了吧?现在让我们做一些实事吧 我将介绍如何构建一个 运行于 Palm OS设备上的 Java应用程序 首先 虽然J ME是Java技术 但这并非意谓着你可以使用现有的 Java应用程序 重新编译它们然后把它们运行于新的设备上 在前面几章中我已经谈过 J SE和J EE使用的Java虚拟机中的许多关键特性已经从J ME虚拟机中删除了 因为设备的资源有限     J ME带的 Java虚拟机(KVM)缺乏浮点数支持;J ME应用程序与 J SE J EE应用程序的另外一个重要的差别是缺乏优先型多任务 虽然它不是 Java规范中所述的必要条件 但是几乎你的 J SE J EE应用程序运行的所有机器都支持优先型多任务 这意味着 CPU在多个 Java线程之间共享而不必在你的程序中添加任何特殊的代码 而 J ME使用的设备则往往没有这种功能 为了确保多线程能够工作 你必须调用 Thread yield()方法     使用 CLDC简表的另一个值得注意的方面是J ME类库缺少许多 J SE类库中的类 在构建应用程序时 必须使用这有限制的类库 当你下载到CLDC文件时 你可以仔细考察你获得的文件 弄清楚哪一个类包含在CLDC规范中 你必须对付的最后一个问题是 CLDC类库内部缺少访问用户界面元素 按钮 菜单 图形 不使用 Palm的用户界面 就不大可能为 Palm OS设备开发应用程序 Sun已经解决了这个问题 使用一个单独的类库 sun kjava来提供给你访问基层 Palm用户界面的权限 下面这个示例程序就使用类库创建窗口 按钮和对话框 不过请注意 kjava类库既不是 MIDP配置也不是 CLDC简表的官方部分 它很有可能在未来的版本中改变或消失 这就意味着你使用 kjava类库写的任何程序 一旦发行新的J ME版本你就不得不修改这个程序以适应新的J ME版本 但是现在 它还是你开发使用Palm用户界面的应用程序的唯一选择   import lang *;  import sun kjava *;  public class HelloWorld extends Spotlet  implements DialogOwner   private Button quitButton;  private Button aboutButton;  private TextBox weleTextBox;  private final String weleString = Hello World ;  private final String aboutTitleString = About Hello World ;  private final String aboutString = HelloWorld J ME CLDC Application ;  public HelloWorld()   register(WANT_SYSTEM_KEYS);  weleTextBox = new TextBox(weleString );  aboutButton = new Button( About );  aboutButton setEnabled(true);  quitButton = new Button( Quit );  quitButton setEnabled(true);  paint();    public void dialogDismissed(String title)   Graphics clearScreen();  register(WANT_SYSTEM_KEYS);  paint();    public void paint()   weleTextBox paint();  aboutButton paint();  quitButton paint();    public void penDown(int x int y)   if (aboutButton pressed(x y))   Dialog aboutDialog =     new Dialog(this aboutTitleString aboutString OK );  aboutDialog showDialog();    if (quitButton pressed(x y))  System exit( );    public static void main(String args[])   new HelloWorld();        分析HelloWorld应用程序    上面的这个HelloWorld应用程序具有运行 Palm OS的设备上的 CLDC应用程序的基本特征 当你仔细考察一下这段代码 你会发现许多使用 kjava类库编译应用程序的特性 首先 这个程序扩展了 sun kjava spotlet类 使用 kjava 一个 spotlet就是任何可以得到焦点(focus)的类 那就是说 从系统中接收事件 比如手写笔的点触 在我们的例子中 当手写笔点击About和Quit按钮时 HelloWorld应用程序需要响应 因此它需要获得焦点 你的应用程序可以包括任意多的从 spotlet中衍生的类 虽然在任何时间它们中间只有一个能够取得焦点 实际上 应用程序通过调用 register方法使用焦点 我们在 HelloWorld构造程序开始的部分和 dialogDismissed方法中都用了 register HelloWorld类实现了 DialogOwner接口 实现 DailogOwner接口的类是用于创建对话框的类 我们的应用程序创建了一个对话框来响应手写笔点击 About按钮的事件 为了实现DialogOwner接口 你的类必须包含一个dialogDismissed成员方法 为了实现 DialogOwner接口 你的类必须包含一个 dialogDismissed成员方法 这个方法在一个对话框被关闭的时间被调用     HelloWorld构造程序在屏幕上创建三个界面元素 一个文本框和两个按钮 你马上就会发现 kjava和 J SE AWT的一个重要的差别 kjava没有与 AWT自动布局机制等价的东西 你必须自己编码确定每个界面元素在屏幕上的位置 在我们的程序中 我们把文本框放在( )和( )之间 两个按钮放置在( )和( )     每当用户在装置上轻点手写笔时 都要调用HelloWorld的 penDown方法 我们通过调用每个按钮的 pressed方法确定这次点击是否发生在按钮的边界以内 如果按钮的pressed方法返回一个真值 意味着手写笔点击事件发生在按钮边界之内 这个按钮相对应的动作将发生 比如说如果点击了 About按钮 我们通过创建一个新的 Dialog对象创建 About对话框 要是点击了 Quit按钮 我们就终止这个程序     最后 当用户关闭对话框时 要调用 HelloWorld的 dialogDismissed方法 在我们的应用程序中 这个方法做的事情就是通过调用 register方法恢复焦点并调用 paint方法来刷新屏幕    编译    编译一个 CLDC应用程序需要两步操作 首先你必须通过标准的 J SE编译程序运行它们 不过使用 CLDC类库代替标准的 J SE类库 然后 使用preverify程序把得到的 class文件转化成 KVM可读的 Java应用程序     上面的示例程序如下面这样编译   javac g:none classpath %cldc_classpath% d %temp% HelloWorld java  preverify classpath %cldc_classpath% s %temp% d     一旦编译好后 就可以使用下面的命令来在你的台式机上运行这个程序     kvm classpath %cldc_classpath% HelloWorld     既然这个CLDC应用程序在计算机上可以运行 那么你也可以试着把它转换成Palm可执行文件    在Palm上运行    为了把一个使用CLDC开发的 class文件转换成在Palm OS设备上可实际运行的文件 你需要使用j me_cldc _ src palm_overlay zip中的许多程序 首先 你必须把你的 class文件转换成 Palm OS应用程序 所有的 Palm OS应用程序都有扩展名 prc 通过使用   palm database MakePalmApp类把 class文件转化成 prc文件 使用下面这个命令行运行我们刚才写好的 HelloWorld class文件   java palm database MakePalmApp bootclasspath %cldc_classpath% HelloWorld cha138/Article/program/Java/hx/201311/25772

相关参考

知识大全 delphi简单判断程序30秒没有键盘和鼠标动作示例

本文为大家详细介绍下delphi判断程序秒没有键盘和鼠标动作这里给timer设置了ms)的参数表示秒的间隔具体实现如下感兴趣的朋友可以参考下哈   以下为原代码(这里给timer设置了ms)

知识大全 vb.net实现sqlite数据库编程示例

   在项目开发中充分体会到了一个精简数据存储模块的重要性及实用性在综合了三年开发经验的基础上向各位推介一下sqlite数据库希望更多的程序猿支持开源精神 &n

知识大全 一个关于如何解决复杂编码的挑战问题

  示例代码展示了多种解决互联网应用程序开发的方法    开发互联网应用程序是非常复杂的你不仅要实现定义应用程序的行为和逻辑还必须在分布式环境下将多种产品技术层次和标准结合在一起    例如考虑一个几

知识大全 WCF通信简单示例

WCF通信简单示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天写了一个WCFdemo给大

知识大全 网页前端优化之滚动延时加载图片示例

做web开发的朋友都应该掌握前端优化这个技巧其中一个就是滚动延时加载这个技巧应用在了很多地方比如新浪微博网页版以下就为大家详细介绍需要的朋友可以参考下   为什么要延时加载呢?页面加载的时候

知识大全 P2P的简单示例:VB.net版

P2P的简单示例:VB.net版  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!这是用实现的一个简单

知识大全 ajax入门小程序

  此小程序主要给ajax还未入门的朋友们一个简单的演示程序的主要内容就是将页面部分的id通过表单传到java的servlet中因为只是做示例所以没有对id进行任何处理有兴趣的朋友可以连接数据库或应用

知识大全 简单的HTML示例

PHP典型模块与项目实战大全:简单的HTML示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Eclipse 3.0 简介和插件开发示例

Eclipse3.0简介和插件开发示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Eclip

知识大全 如何用Delphi开发简单的WebMail程序

如何用Delphi开发简单的WebMail程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Web