第2章 编写BlackBerry Java应用程序Word下载.docx
- 文档编号:22102189
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:34
- 大小:34.43KB
第2章 编写BlackBerry Java应用程序Word下载.docx
《第2章 编写BlackBerry Java应用程序Word下载.docx》由会员分享,可在线阅读,更多相关《第2章 编写BlackBerry Java应用程序Word下载.docx(34页珍藏版)》请在冰豆网上搜索。
为你的应用程序定义缺省的构造子。
缺省的构造子调用UiApplication.pushScreen()以显示当应用程序启动时出现的屏幕。
在本例中,屏幕使一个新的HelloWorldScreen实例,它在下节的代码中定义:
publicHelloWorld(){
pushScreen(newHelloWorldScreen());
}
定义main屏幕
为了定义应用程序UI的主屏幕,扩展MainScreen类。
MainScreen类是Screen的子类,它实现了TrackwheelListener和KeyboardListener接口,这些接口接收和响应用户交互。
如果你扩展Screen类或者其子类中的一个,你并不是必须实现TrackwheelListener和KeyboardListener接口。
你的类至少应该重写2个MainScreen的方法:
缺省的构造子和onClose().
在这个例子中,构造子调用了MainScreen的构造子。
缺省地,MainScreen提供下列特性:
∙由一个Close菜单项的缺省菜单。
∙当你点击Close或者按Escape时,缺省的是关闭动作。
为了提供客户定制行为,例如显示一个对话框提示,当用户点击Close菜单项或者按Escape按钮,重写onClose().
∙一个RichTextField的实例,一个可以接收焦点的只读富文本域为了得到更多关于增加UI组件到屏幕中的信息,参看40页的“提供屏幕导航”
∙一个Select菜单项的上下文菜单?
为了得到更多信息,参看60页的“创建定制的上下文菜单“
代码实例
接下来的例子创建了一个屏幕,它包含了一个富文本域。
当富文本域接收到焦点时,菜单保安一个Close菜单项和一个Select上下文菜单项。
例:
HelloWorld.java
/**
*
HelloWorld.java
Copyright(C)2001-2005ResearchInMotionLimited.Allrightsreserved.
*/
packagecom.rim.samples.docs.helloworld;
importnet.rim.device.api.ui.*;
importponent.*;
importnet.rim.device.api.ui.container.*;
importnet.rim.device.api.system.*;
importcom.rim.samples.docs.resource.*;
publicclassHelloWorldextendsUiApplication{
publicstaticvoidmain(String[]args){
}
publicHelloWorld(){
}
finalclassHelloWorldScreenextendsMainScreen{
publicHelloWorldScreen(){
super();
LabelFieldtitle=newLabelField(“HelloWorldSample”,LabelField.ELLIPSIS
|LabelField.USE_ALL_WIDTH);
setTitle(title);
add(newRichTextField(“HelloWorld!
”));
publicbooleanonClose(){
Dialog.alert(“Goodbye!
”);
System.exit(0);
returntrue;
抽象基类可以使你跨越多个类实现和重用一般功能。
每个应用程序可以扩展单个基类。
在BlackBerryIDE,加入基类到一个库项目中。
为每个应用程序创建一个独立的项目,定义库项目的依赖。
本指南的例程扩展了BaseApp类,它实现下面的功能:
∙扩展UiApplication类
∙实现KeyListener和TrackwheelListener接口
∙定义变量,例如一般的菜单项
∙定义一个方法创建应用程序菜单。
∙为菜单选择定义一个方法
∙定义一个抽象方法退出程序
BaseApp.java
/*
**BaseApp.java
**Copyright(C)2001-2005ResearchInMotionLimited.Allrightsreserved.
**/
packagecom.rim.samples.docs.baseapp;
importnet.rim.device.api.i18n.*;
publicabstractclassBaseApp
extendsUiApplicationimplementsBaseAppResource,KeyListener,TrackwheelListener{
privateMenuItem_closeItem;
privatestaticResourceBundle_resources=
ResourceBundle.getBundle(BUNDLE_ID,BUNDLE_NAME);
/*Constructorfortheabstractbaseclass.*/
publicBaseApp(){
_closeItem=newMenuItem(_resources,MENUITEM_CLOSE,200000,10){
publicvoidrun(){
onExit();
};
/*Overridethismethodtoaddcustommenuitems.*/
protectedvoidmakeMenu(Menumenu,intinstance){
Fieldfocus=UiApplication.getUiApplication().
getActiveScreen().getLeafFieldWithFocus();
if(focus!
=null){
ContextMenucontextMenu=focus.getContextMenu();
if(!
contextMenu.isEmpty()){
menu.add(contextMenu);
menu.addSeparator();
menu.add(_closeItem);
/*Invokedwhenthetrackwheelisclicked.*/
publicbooleantrackwheelClick(intstatus,inttime){
Menumenu=newMenu();
makeMenu(menu,0);
menu.show();
/*Invokedwhenthetrackwheelisreleased.*/
publicbooleantrackwheelUnclick(intstatus,inttime){
returnfalse;
/*Invokedwhenthetrackwheelisrolled.*/
publicbooleantrackwheelRoll(intamount,intstatus,inttime){
publicbooleankeyChar(charkey,intstatus,inttime){
/*IntercepttheESCkeyandexittheapplication.*/
booleanretval=false;
switch(key){
caseCharacters.ESCAPE:
retval=true;
break;
returnretval;
/*ImplementationofKeyListener.keyDown().*/
publicbooleankeyDown(intkeycode,inttime){
/*ImplementationofKeyListener.keyRepeat().*/
publicbooleankeyRepeat(intkeycode,inttime){
/*ImplementationofKeyListener.keyStatus().*/
publicbooleankeyStatus(intkeycode,inttime){
/*ImplementationofKeyListener.keyUp().*/
publicbooleankeyUp(intkeycode,inttime){
protectedabstractvoidonExit();
为了编写,调试和编译应用程序,使用BlackBerryIDE,它是BlackBerryJDE的一部分。
注:
BlackBerry版本4.1使用了SunJDK5.0
创建一个工作空间
1.
在BlackBerryIDE,选择File菜单,点击NewWorkspace
2.
在Workspacename域,输入一个没有文件扩展名的名字。
3.
在Createinthisdirectory域,输入一个文档。
4.
点击OK.
创建一个项目
在包含工作空间的文件夹下的子目录中创建工程。
1.
在BlackBerryIDE的Project菜单,点击CreateNewProject.
2.
在Projectname域,输入一个没有文件扩张名的项目名称。
3.
在Createprojectinthisdirectory域,输入在此文件夹下创建项目的文件夹名称。
4.
点击OK。
5.在工作空间文件区域里,双击项目名称来设置项目属性。
为了得到更多关于项目属性的信息,参看BlackBerryIntegratedDevelopmentEnvironmentOnlineHelp。
创建源文件
保存源文件到和项目文件相同的文件夹下。
和所有Java程序一样,为符合你的类使用的包层次关系的源代码创建文件结构,
在BlackBerryIDE的File菜单,点击New。
在Sourcefilename域,输入一个带.java文件扩展的文件名。
在Createsourcefileinthisdirectory域,输入文件夹名。
5.
在编辑器区域,右击文件,然后点击Insertintoproject.
6.
选择一个项目。
7.
和BlackBerryIDE集成源文件管理工具
你可以通过不同的源文件控制程序来使用BlackBerryIDE。
BlackBerryIDE允许你为源文件控制程序设置“checkout”,“addnewfile”和“revert”选项。
在你为某一特定的源文件控制程序配置好选项后,BlackBerryIDE可以自动checkout文件,运行预先设置的命令,恢复改变,以及增加新创建的文件到源文件控制程序里。
在BlackBerryIDE的File菜单,点击Edit->
Preferences.
点击SourceControl标签。
点击Checkout标签。
在Checkout域,输入命令以能打开一个文件来编辑。
例如输入:
p4edit%1
%1参数代表了名称和一个文件的绝对路径。
例如:
对于一个在c:
\mypath的foo.java文件,当BlackBerryIDE执行命令checkout%1,时,BlackBerryIDE实际上运行命令checkoutc:
\mypath\foo.java。
点击Addfile标签。
在Addnewfile域,输入命令以增加一个新的文件到源文件控制程序中。
p4add%1
点击Revertfile标签.
8.
在Revertchanges域,输入命令撤销一个源文件控制程序中的文件。
p4revert%1
9.-->
单击OK。
编译项目
当你编译项目时,BlackBerryIDE编译你的源文件到Java字节编码(Bytecode),进行预验证,然后将类打包为一个.cod文件。
在JavaME中,字节编码验证分为2个步骤。
已经编译的代码在它加载到BlackBerry设备之前预先验证,因此类加载时BlackBerry设备仅必须进行基本的验证。
BlackBerryIDE在编译项目时自动进行预验证。
当你编译一个项目时,如果需要,BlackBerry也编译项目依赖的任何库。
动作
过程
附加信息
编译所有项目
>
在Build菜单,点击BuildAll
为了排除一个项目,设置项目属性。
编译所有活动的项目
在Build菜单,点击Build。
在工作空间,活动的项目名是加粗的。
为了改变哪些项目是活动的,在Project菜单,点击SetActiveProjects.
编译单一项目
∙选择一个项目
∙
在Build菜单,点击BuildSelected。
―――
创建一个工作空间makefile
在Build菜单,点击GenerateMakefileandResource.
缺省的,已经编译的.cod文件使用项目名。
为了改变这个名字,双击项目文件,点击Build标签,输入outputfilename(输出文件名)。
混淆应用程序
和传统的编译器不一样,BlackBerry平台的编译器因为受限的无线环境而优化了。
在这里无线环境的目标是最小化应用程序的大小。
作为结果的.cod文件提供了大量的类似于其他真正混淆包的混淆服务,以致能减小.cod文件本身的大小。
例如,下面的信息将从.cod文件中移除:
∙所有调试的信息
∙本地变量名
∙源代码的行数
∙私有方法和成员名
同样,RIM相信没有必要为应用程序提供混淆,除了已经存在的BlackBerry平台编译的所有应用程序缺省提供的混淆。
事实上,RIM没有对自己的产品进行任何额外的混淆。
对通过第三方工具混淆的支持没有集成到BlackBerry
JDE.同样,需要一个命令行过程来混淆.cod文件供BlackBerry设备上使用。
混淆一个.cod文件
在BlackBerryIDE,创建应用程序
<
--[ifgtevml1]>
<
!
[endif]-->
--[if!
vml]-->
提示:
在这个过程中将项目文件放到一个独立的目录中。
创建临时的目录
将BlackBerryIDE创建的jar文件拷贝到一个临时目录。
释放.jar文件的内容到一个临时目录。
例如,在命令窗口输入下面的命令:
*jarxvfSampleApplication.jar
删除释放为.jar文件部分的.cod文件。
删除.jar文件
混淆在临时目录下包含的类文件。
使用下面的命令对临时目录的内容运行预验证工具:
*preverify.exe-verbose-d.-classpath..\lib\net_rim_api.jar;
9.
在已混淆(和预验证)的类文件上运行rapc来创建一个.cod文件。
使用下面的命令:
*rapc.exe-verboseimport=..\lib\net_rim_api.jarlisting=SampleApplication.lstcodename=SampleApplicationSampleApplication.rapcC:
\yourTempDir\SampleApplication.class
生成API文档
使用一个BlackBerryIDE宏给代码加入注释。
一旦启用这个功能,如果你在一个函数声明前的任何一行输入/**,BlackBerryIDE生成下面的注释:
/**
*<
description>
.
*@parammenu<
*@paraminstance<
*@return<
如果你在其他行输入/**,theBlackBerryIDE生成下面的注释:
:
BlackBerryIDE预先加载<
.作为查询字符串,再查询第一个实例,然后选择这个实例,这个特性允许你输入描述,然后按F3转移到后面的参数。
因为javadocs宏依赖于分解浏览的信息,仅在成功完成一个编译后增加javadocs。
如果你的文件包含一个语法错误,并且在上面你正试着插入注释,宏不会得到函数声明。
增加一个新的编辑器宏
在Edit菜单,点击Preferences。
点击Editor标签。
点击Macros按钮。
从WhenItype下拉列表中,选择/**.
5.
在Replaceitwith文本框里,输入@javadoc.
6.
在同一行或者每个函数声明的前一行输入/**。
例如,在下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 编写BlackBerry Java应用程序 编写 BlackBerry Java 应用程序
![提示](https://static.bdocx.com/images/bang_tan.gif)