您好,欢迎访问三七文档
第2章编写BlackBerryJava应用程序应用程序管理编写一个例程重用一般代码使用BlackBerryIDE使用命令行使用蓝牙开发环境使用Eclipse开发环境编程指南应用程序管理当BlackBerry设备启动时,VM加载应用程序管理器,它管理在BlackBerry设备上所有运行的程序。对于其他Java程序,应用程序管理器的功能类似操作系统事件的中心调度员一样。提供用户界面的应用程序扩展了net.rim.device.api.ui.UiApplication类。这个类为应用程序提供方法来注册事件监听者,管理线程以及UI组件。没有提供用户界面的应用程序扩展了net.rim.device.api.system.Application类。BlackBerry应用程序开始于main()函数。当一个程序开始时,它的main()线程调用enterEventDispatcher()来开始处理事件。这个线程运行所有绘图以及事件处理的代码,以及登等待应用程序队列里地事件。当应用程序管理器接收到一个事件时,它将这个事件拷贝到合适的队列里,这个队列可以允许应用程序管理器指挥消息到特定的程序中。例如,前台的应用程序仅接收用户输入的消息。编写一个例程扩展UiApplication基类每个提供用户接口的应用程序扩展了UiApplication基类,UiApplication类为应用程序定义了方法来建立一个事件线程,并且显示和维护Screen对象。定义main()在main()中,为应用程序创建一个新的对象。调用enterEventDispatcher()使应用程序进入事件线程并且开始处理消息。publicstaticvoidmain(String[]args){HelloWorldtheApp=newHelloWorld();theApp.enterEventDispatcher();}定义一个构造子为你的应用程序定义缺省的构造子。缺省的构造子调用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.*;importnet.rim.device.api.ui.component.*;importnet.rim.device.api.ui.container.*;importnet.rim.device.api.system.*;importcom.rim.samples.docs.resource.*;publicclassHelloWorldextendsUiApplication{publicstaticvoidmain(String[]args){HelloWorldtheApp=newHelloWorld();theApp.enterEventDispatcher();}publicHelloWorld(){pushScreen(newHelloWorldScreen());}}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.*;importnet.rim.device.api.system.*;importnet.rim.device.api.ui.container.*;importnet.rim.device.api.ui.*;importnet.rim.device.api.ui.component.*;importcom.rim.samples.docs.resource.*;publicabstractclassBaseAppextendsUiApplicationimplementsBaseAppResource,KeyListener,TrackwheelListener{privateMenuItem_closeItem;privatestaticResourceBundle_resources=ResourceBundle.getBundle(BUNDLE_ID,BUNDLE_NAME);/*Constructorfortheabstractbaseclass.*/publicBaseApp(){_closeItem=newMenuItem(_resources,MENUITEM_CLOSE,200000,10){publicvoidrun(){onExit();System.exit(0);}};}/*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();returntrue;}/*Invokedwhenthetrackwheelisreleased.*/publicbooleantrackwheelUnclick(intstatus,inttime){returnfalse;}/*Invokedwhenthetrackwheelisrolled.*/publicbooleantrackwheelRoll(intamount,intstatus,inttime){returnfalse;}publicbooleankeyChar(charkey,intstatus,inttime){/*IntercepttheESCkeyandexittheapplication.*/booleanretval=false;switch(key){caseCharacters.ESCAPE:onExit();System.exit(0);retval=true;break;}returnretval;}/*ImplementationofKeyListener.keyDown().*/publicbooleankeyDown(intkeycode,inttime){returnfalse;}/*ImplementationofKeyListener.keyRepeat().*/publicbooleankeyRepeat(intkeycode,inttime){returnfalse;}/*ImplementationofKeyListener.keyStatus().*/publicbooleankeyStatus(intkeycode,inttime){returnfalse;}/*ImplementationofKeyListener.keyUp().*/publicbooleankeyUp(intkeycode,inttime){returnfalse;}protectedabstractvoidonExit();}使用BlackBerryIDE为了编写,调试和编译应用程序,使用BlackBerryIDE,它是BlackBerryJDE的一部分。注:BlackBerry版本4.1使用了SunJDK5.0创建一个工作空间1.在BlackBerryIDE,选择File菜单,点击NewWorkspace2.在Workspacename域,输入一个没有文件扩展名的名字。3.在Createinthisdirectory域,输入一个文档。4.点击OK.创建一个项目注:在包含工作空间的文件夹下的子目录中创建工程。1.在BlackBerryIDE的Project菜单,点击CreateNewProject.2.在Projectname域,输入一个没有文件扩张名的项目名称。3.在Createprojectinthisdirectory域,输入在此文件夹下创建项目的文件夹名称。4.点击O
本文标题:BlackBerry 应用程序开发者指南 第一卷:基础--第2章 编写BlackBerry Java
链接地址:https://www.777doc.com/doc-3131893 .html