本文档向您介绍了使用 NetBeans IDE 5.5 创建 Java™ Platform Micro Edition (Java™ ME Platform) 移动信息设备配置文件 (Mobile Information Device Profile, MIDP) 应用程序的基础知识。本文档旨在帮助您快速入门。以下文档提供了有关在 NetBeans 开发环境中使用 Java ME 支持的详细信息:
将现有的 Java ME MIDP/CLDC 源代码导入到 NetBeans IDE 中
以下教程简要介绍了使用新项目系统的一些基本步骤。我们将向您介绍两种方法,用来创建名为 "MyHello" 的 Java ME MIDP 项目,该项目会在设备仿真器中显示文本 "Hello World"。
要求
您必须先安装 NetBeans IDE 5.5 和 NetBeans Mobility Pack 5.5,然后才能进行 Java ME MIDP/CLDC 开发。有关下载和安装完整环境的说明,请参见 Mobility Pack 文档和支持页。
使用可视 Mobile 设计器创建 MIDP 应用程序
NetBeans IDE 提供了一个向导,可用来快速创建 MIDP 项目。在创建项目时,可以选择在可视 Mobile 设计器 (Visual Mobile Designer, VMD) 或源代码编辑器中开发应用程序。
使用可视 Mobile 设计器时,您可以按图形方式规划应用程序流并设计应用程序所使用的屏幕。该设计器会自动为应用程序创建代码。
创建 MIDP/CLDC 应用程序
选择“文件”>“新建项目”(Ctrl-Shift-N)。分别在“类别”下选择 "Mobile",在“项目”下选择“Mobile 应用程序”,然后单击“下一步”。
在“项目名称”字段中输入 MyHello。将项目位置更改为系统上的任意目录。从现在起,我们将该目录称为 $PROJECTHOME。
选中“设置为主项目”和“创建 Hello MIDlet”复选框(缺省情况下,这两个复选框均处于选中状态)。单击“下一步”。
将 J2ME Wireless Toolkit 作为选定的目标平台。
单击“完成”。此时 IDE 创建了 $PROJECTHOME/MyHello 项目文件夹。该项目文件夹包含了所有源代码和项目元数据,如项目 Ant 脚本。
应用程序本身会显示在可视 Mobile 设计器的“流设计”窗口中。

编辑 Java 源代码
现在,让我们编辑 MIDlet 所显示的文本。
单击“屏幕设计”。
这将打开“屏幕设计器”窗口并显示 helloForm[Form] 屏幕,这是应用程序中唯一可用的屏幕。
双击 "Hello world!" 文本并键入某些新文本。
编译并运行项目
从“运行”菜单中选择“运行”>“运行主项目”(F6)。双击“输出”窗口将其最大化,以便查看所有输出内容。请注意,HelloMIDlet.java 文件是在执行之前构建的。这样便会打开一个设备仿真器以显示执行的 MIDlet 结果。缺省设备仿真器为 DefaultColorPhone。
在设备仿真器窗口中,单击“启动”命令下面的按钮。设备仿真器将启动 MIDlet,并显示在源代码中输入的文本。
单击 "Exit" 下面的按钮关闭 MIDlet,然后,单击设备右上角的按钮关闭仿真器窗口。
使用源代码编辑器创建 MIDP 应用程序
使用源代码编辑器时,您可以为 MIDlet 手动创建代码。通过在源代码编辑器中创建代码,您可以更灵活地编辑代码,并且可以插入预处理程序代码块。
现在,我们将使用“新建项目”和“新建文件”向导来创建同一个应用程序,并使用源代码编辑器来完成该代码。
创建新的 Java ME MIDP 项目
选择“文件”>“新建项目”(Ctrl-Shift-N)。分别在“类别”下选择 "Mobile",在“项目”下选择“Mobile 应用程序”,然后单击“下一步”。
在“项目名称”字段中输入 MyHelloMIDlet。将项目位置更改为系统上的任意目录。从现在起,我们将该目录称为 $PROJECTHOME。
选中“设置为主项目”复选框,并取消选中“创建 Hello MIDlet”复选框。单击“下一步”。
将 J2ME Wireless Toolkit 作为选定的目标平台。
单击“完成”。此时 IDE 创建了 $PROJECTHOME/MyHelloMIDlet 项目文件夹。该项目文件夹包含了所有源代码和项目元数据,如项目 Ant 脚本。
在“项目”窗口中右键单击 MyHelloMIDlet 节点,然后选择“新建”>“文件/文件夹”。
分别在“类别”下选择 "MIDP",在“文件类型”下选择 "MIDlet",单击“下一步”。
输入 HelloMIDlet 作为 MIDlet 名称。单击“完成”。将创建 HelloMIDlet.java 文件。
双击 HelloMIDlet.java 文件以在编辑器中显示源代码。
在源代码编辑器中单击,然后将
public class HelloMIDlet extends MIDlet
更改为
public class HelloMIDlet
extends MIDlet implements javax.microedition.lcdui.CommandListener
{
将以下文本添加到 startApp() 方法的前面:
public HelloMIDlet() {
}private void initialize() { javax.microedition.lcdui.Display.getDisplay(this).setCurrent(get_helloTextBox());}
public void commandAction(javax.microedition.lcdui.Command command, javax.microedition.lcdui.Displayable
displayable) { if (displayable == helloTextBox) { if (command == exitCommand) { javax.microedition.lcdui.Display.getDisplay(this).setCurrent(null); destroyApp(true); notifyDestroyed(); } }
}
private javax.microedition.lcdui.TextBox get_helloTextBox() { if (helloTextBox == null) { helloTextBox = new javax.microedition.lcdui.TextBox(null, "Test String",120, 0x0); helloTextBox.addCommand(get_exitCommand()); helloTextBox.setCommandListener(this); } return helloTextBox;}
private javax.microedition.lcdui.Command get_exitCommand() { if (exitCommand == null) { exitCommand = new javax.microedition.lcdui.Command("Exit", javax.microedition.lcdui.Command.EXIT,
1); } return exitCommand;}
javax.microedition.lcdui.TextBox helloTextBox;javax.microedition.lcdui.Command exitCommand;
将 initialize(); 一行添加到 startApp() 方法中,如下所示:
public void startApp() {
initialize();
}
编辑 Java 源代码
现在,我们来添加一些文本以便由 MIDlet 进行显示。
在 get_helloTextBox() 方法中,用所选的文本替换 "test string" 代码。例如,"Hello World"。
编译并运行项目
从“运行”菜单中选择“运行”>“运行主项目”(F6)。双击“输出”窗口将其最大化,以便查看所有输出内容。请注意,HelloMIDlet.java 文件是在执行之前构建的。这样便会打开一个设备仿真器以显示执行的 MIDlet 结果。缺省设备仿真器为 DefaultColorPhone。
在设备仿真器窗口中,单击“启动”命令下面的按钮。设备仿真器将启动 MIDlet,并显示在源代码中输入的文本。
单击 "Exit" 下面的按钮关闭 MIDlet,然后,单击设备右上角的按钮关闭仿真器窗口。
更改仿真器平台
仿真器平台是由移动电话制造商提供的,因此开发商在对应用程序进行编码、调试和测试时,可以模拟特定的移动设备行为。NetBeans Mobility Pack 中包含 J2ME Wireless Toolkit,并且支持许多其他的软件开发工具包 (Software Development Kit, SDK),您可以通过提供商站点(如 Nokia、Sony Ericsson 或 Motorola)下载这些工具包。
更改缺省的仿真器设备
右键单击 "MyHello" 项目节点,然后选择“属性”。在“属性”对话框中,选择“平台”节点。可以在其中更改缺省配置的设备。
单击“设备”下拉列表,然后选择 "QwertyDevice"。单击“确定”。
重新运行应用程序,此时该应用程序在 QwertyDevice 仿真器中运行。
添加新的仿真器平台
从主工具栏中选择“工具”>“Java 平台管理器”。
在“Java 平台管理器”对话框中,单击“添加平台”按钮。
在“选择平台类型”页中,选择“Java Micro Edition 平台仿真器”。单击“下一步”。
在“平台”页中,IDE 会搜索所有可用的 Java ME 平台并将它们列在窗口中。IDE 将验证符合统一仿真器接口 (Unified Emulator Interface, UEI) 标准的平台,并且在这些平台名称旁边的复选框中会出现复选标记。不符合 UEI 的平台或因其他原因而无法安装的平台将以红色标记列出。该向导还可以标识已安装的平台。
注意:要安装不符合 UEI 的平台,请单击“上一步”按钮,然后选择“定制 Java Micro Edition 平台仿真器”。
在“平台”页中,选中要安装的任何平台仿真器旁边的复选框,单击“完成”。然后单击“关闭”。
系统将安装选定的一个平台或多个平台。
选择“文件”>“'MyHello' 属性”。
选择“平台”节点,然后从“仿真器平台”下拉菜单中选择新仿真器的名称(例如,J2ME Wireless Toolkit 2.2)。单击“确定”。
使用配置
可以使用配置为项目创建多组分发 JAR 和 Java 应用程序描述符 (Java Application Descriptor, JAD) 文件。这样,就可以创建一组源代码,并为要编程的每个移动设备定制这些源代码。
添加配置
右键单击 "MyHello" 项目节点,然后选择“属性”。在“属性”对话框中,从“项目配置”下拉列表中选择“添加配置”。这将打开“添加配置”对话框。
在“配置名称”字段中为配置输入一个名称。该名称会标识一个目标平台,您将在该目标平台上部署为此配置创建的 JAR/JAD。例如,输入 BlackWhiteDisplay,然后单击“确定”。至此,您就创建了一个新的配置。
也可以通过单击“属性”对话框中的“管理配置”按钮来添加配置。这将打开“项目配置管理器”对话框,该对话框包含用于添加、删除或复制配置的选项。
定制配置
您可以根据需要在项目中添加任意数量的配置。然后,可以在“项目属性”对话框中修改已添加的每个配置的设置。
右键单击 "MyHello" 项目节点,然后选择“属性”。在“属性”对话框中,选择“平台”节点。这将打开“J2ME MIDP 配置”对话框。
从“属性”对话框顶部的配置组合框中选择 BlackWhiteDisplay 配置。
“平台”对话框中的所有组件将被禁用。这是因为,该配置当前采用此面板中缺省配置所使用的值。取消选中面板底部的“使用 "DefaultConfiguration" 中的值”选项。现在就可以编辑此面板上的所有组件了。
将“设备”选项更改为 "DefaultGrayPhone"。
切换“属性”对话框顶部的“项目配置”对话框,并观察“设备”选项随当前选定配置的变化而变化的情况。此配置定制方法适用于对话框中的每个面板(常规面板除外)。单击“确定”可保存配置更改并退出“属性”对话框。
创建性能
在创建某个性能时,可以将其与一个或多个支持某个特定属性或属性集合的项目配置相关联。然后,可以将此性能与一个或多个支持该属性的代码块相关联。如果之后需要添加或删除配置,则无需检查所有代码,也无需将此配置与每个代码块相关联,只需将此配置与某个性能相关联即可。该配置会自动与此性能关联的任意代码块相关联。
右键单击 "MyHello" 项目节点,然后选择“属性”。
从“类别”菜单树中选择“性能”页。
从“项目配置”下拉菜单中选择一个配置。这是与该性能关联的配置。
如有必要,请取消选中“使用 "DefaultConfiguration" 中的值”复选框。
单击“添加”按钮。
这将打开“添加性能”对话框。
在“添加性能”对话框中输入性能的名称,或者从下拉菜单中选择一个性能。(可选)为该性能输入一个值。
单击“确定”关闭“添加性能”对话框。现在,此性能将与选定的项目配置相关联。
可以使用以下方法将此性能与其他配置相关联:从“项目配置”菜单中选择一个不同的配置,然后单击“添加”按钮。
添加特定于配置的代码(预处理程序代码)
可以使用预处理程序块来创建、管理和跟踪特定于一个或多个项目配置或性能的代码。预处理程序块将只根据您指定的配置或性能启用(或禁用)代码。
在 HelloMIDlet.java 编辑器窗口中,右键单击要实例化 TextBox 的源代码行 (helloTextBox = new javax.microedition.lcdui.TextBox(null, "Hello, World",120, 0x0);)。
右键单击该行,然后选择“预处理程序块”>“创建 If/Else 程序块”。在第一个粉红色部分,将 "Color" 字样附加到 "Hello World" 字符串的后面。在第二个灰色部分,将 "Gray" 添加到 "Hello World" 字符串的后面。
每当活动配置与指令值(此处为 DefaultConfiguration)匹配时,//#if 预处理程序指令标记的代码将生效。每当活动配置与预处理程序值不匹配时,将使用 //#else 预处理程序指令标记的代码。
换句话说,每当活动平台为 "DefaultConfiguration" 时,仿真器将显示 "Hello World Color";如果活动平台是任何其他仿真器平台,则显示 "Hello World Gray"。//#endif 预处理程序指令将完成预处理程序块。
可以通过使用不同的仿真器设备运行 MIDlet 来测试预处理程序代码,如更改仿真器平台中所述。
运行配置
既可以单独生成并运行配置,也可以同时生成并运行配置。
右键单击 "MyHello" 项目节点,然后选择“运行”。
可以通过以下方法激活不同的配置:右键单击 "MyHello" 项目节点,选择“设置活动项目配置”,然后选择一个不同的配置。也可以使用每个文本编辑器中的配置组合框来执行此操作。重新运行项目。
将会出现两个仿真器,一个为彩色,一个为灰色。灰色仿真器显示 "Hello World Gray";彩色仿真器显示 "Hello World Color"。
创建客户端-服务器应用程序
可以使用 IDE 来创建客户端 MIDlet,它通过直接的“两层”体系结构连接至 Web 服务,或者通过“三层”体系结构连接至 Web 服务(利用中间件 Web 应用程序)。
IDE 提供了两个用于创建连接类的向导:
如果要使用 JSR-172 Web 服务规范创建与 Web 服务的“两层”连接,请使用“J2ME Web 服务客户端”向导。该向导可以创建桩模块(客户端代理)文件以及(可选)调用 Web 服务的样例客户端 MIDlet。要使用此向导,您必须具有支持 JSR-172 规范的设备或仿真器平台。
如果设备不支持 JSR-172 Web 服务规范,请使用 Web 应用程序的 Mobile 客户端生成器来创建到 Web 服务的“三层”连接。此向导会生成一个 Servlet,它可连接到包含 Web 服务客户端的 Web 应用程序。使用 Web 应用程序的 Mobile 客户端生成器之前,必须具有包含 Web 服务客户端的 Web 项目。
创建 Java ME Web 服务
(JSR-172) 客户端
右键单击某个项目节点,然后选择“新建文件/文件夹”。
在“新建文件”向导的“类别”下,选择 "MIDP"。在“文件类型”下,选择“J2ME Web 服务客户端”。
为要添加到项目中的 Web 服务指定 WSDL 文件位置。
如果 WSDL 服务位于 Web 上:
选择“运行 Web 服务”并输入 WSDL 文件的 URL,然后为检索的 WSDL 输入本地文件名。
如果您处于防火墙的保护下,请单击“代理设置”以指定相应的 HTTP 主机和端口。
单击“检索 WSDL”以获取 WDSL 文件的本地副本。IDE 将下载 WSDL 文件。
如果环境中包含 WSDL 文件,请选择“现有的 WSDL 文件”并输入文件名。
将检索该 WSDL 文件,并使用从 WSDL 文件名获取的缺省名称来填充页面上的其余字段。
按“完成”。
IDE 将创建一个打开的设置文件并生成客户端桩模块。
在极少数的情况下,您可能需要将 CLDC 1.1 类型转换为 CLDC 1.0 类型,这意味着浮点和双精度类型会转换为字符串变量。要进行转换,请在设置文件中选中“将浮点转换为字符串”复选框,然后单击“生成桩模块”按钮。
如果您处于防火墙的保护下,则在 NetBeans 中没有可供 HTTPS 代理使用的公共设置。要解决此问题,请在命令行中使用命令 -J-DhttpsProxy.host 和 -J-DhttpsProxy.port 运行 IDE,或将代理设置添加到 /etc/netbeans.conf 文件中。
请不要编辑生成的文件。在重新生成这些文件时,对其所做的任何更改将会丢失。
使用 Web 应用程序的 Mobile 客户端生成器
可以使用以下方法打开 Web 应用程序的 Mobile 客户端生成器:从“项目”视图中选择一个 Mobile 项目,然后选择“文件”>“新建文件”。在“类别”中,选择 "MIDP"。在“文件类型”中,选择“Web 应用程序的 Mobile 客户端”。单击“下一步”。
在“Servlet 和客户端类型”页中,为生成的服务器代码选择 Web 项目、Servlet 名称以及包。
在同一页中,选择与 MIDlet 交互的 Web 应用程序的类型:
如果 Mobile 客户端直接连接到不使用 Web 服务的 Web 应用程序,则选择“Web 应用程序中的方法”。
如果 Mobile 客户端通过中间件 Web 应用程序连接到 Web 服务,则选择“Web 应用程序中的 Web 服务客户端”,然后使用下拉菜单来选择 Web 服务客户端。
在“服务选择”页中,指定要从服务器导出到客户端应用程序的服务。
在“客户端选项”页中,为生成的客户端类选择名称和包。
在同一页中,还可以确定要生成的代码类型:
用于每种导出服务的桩模块方法
允许每次会话中有多个调用的代码
允许使用浮点值的代码
跟踪代码
可以检查和修改的样例 MIDlet
模板用于创建:
Java ME 客户端类
Servlet 和支持类
xml 格式的映射文件
可以检查和修改的 MIDlet(如果选择)。
Java ME 客户端、映射文件和 MIDlet 是在 Java ME 项目中生成的。Servlet 和支持类是在 Web 项目中生成的,而 Servlet 还将被添加到 Web 应用程序 (web.xml) 中。
本地化应用程序
本地化是软件设计的一个过程,您无需对软件进行任何工程更改即可将其改编(本地化)为不同语言和区域的软件。当本地化应用程序时,会为应用程序中的每个元素(如屏幕文本、菜单和图标)提供替换的语言值。
添加本地化支持
创建初始化本地化支持的 Java 类和消息属性文件。
右键单击 "MyHello" 项目节点,然后选择“新建”>“文件/文件夹”。
分别在“类别”下选择 "MIDP",在“文件类型”下选择“本地化支持类”,单击“下一步”。
通过单击“完成”接受缺省值。这会创建文件 LocalizationSupport.java 和 messages.properties。
更改国际化字符串和搜索格式。
选择“工具”>“选项”,然后单击“高级选项”按钮。
在“选项”菜单树中选择“国际化”节点。
在“属性”窗口中:
将“国际化字符串格式”属性值更改为 LocalizationSupport.getMessage("{key}")
将“国际化搜索格式”属性值更改为 (getString|getBundle|getMessage)[:space:]*\([:space:]*{hardString}|//NOI18N
添加本地化键及其值。
选择“工具”>“国际化”>“国际化向导”。这将打开“国际化向导”。
选择 HelloMIDlet MIDlet 作为要国际化的源文件。单击“下一步”。
选择 messages.properties 资源文件作为存储国际化字符串值的文件。单击“下一步”。
修改为 HelloMIDlet MIDlet 指定的每个键的值字段。
在所有字符串被添加到 messages.properties 文件后,请执行以下操作添加每种新语言环境的值:
右键单击“项目”视图中的文件节点,然后选择“添加语言环境”。
从“预定义的语言环境”列表框中选择要支持的语言环境,或者使用窗体顶部的组合框来定义新的语言环境。
展开“项目”视图中的 message.properties 节点,然后双击新添加的语言环境。
将所有属性转换为相应的语言。
添加代码以初始化本地化。
在需要对键(LocalizationSupport.getMessage("Key");)进行本地化的 MIDlet 中输入以下字符串:
例如,LocalizationSupport.getMessage("LAB_NextButton");
Mobile 应用程序将使用 microedition.locale 属性来确定应使用的 messages.properties 文件版本。
将现有的 Java ME MIDP/CLDC 源代码导入到 NetBeans IDE 中
以下教程简要介绍了使用新项目系统的一些基本步骤。我们将向您介绍两种方法,用来创建名为 "MyHello" 的 Java ME MIDP 项目,该项目会在设备仿真器中显示文本 "Hello World"。
要求
您必须先安装 NetBeans IDE 5.5 和 NetBeans Mobility Pack 5.5,然后才能进行 Java ME MIDP/CLDC 开发。有关下载和安装完整环境的说明,请参见 Mobility Pack 文档和支持页。
使用可视 Mobile 设计器创建 MIDP 应用程序
NetBeans IDE 提供了一个向导,可用来快速创建 MIDP 项目。在创建项目时,可以选择在可视 Mobile 设计器 (Visual Mobile Designer, VMD) 或源代码编辑器中开发应用程序。
使用可视 Mobile 设计器时,您可以按图形方式规划应用程序流并设计应用程序所使用的屏幕。该设计器会自动为应用程序创建代码。
创建 MIDP/CLDC 应用程序
选择“文件”>“新建项目”(Ctrl-Shift-N)。分别在“类别”下选择 "Mobile",在“项目”下选择“Mobile 应用程序”,然后单击“下一步”。
在“项目名称”字段中输入 MyHello。将项目位置更改为系统上的任意目录。从现在起,我们将该目录称为 $PROJECTHOME。
选中“设置为主项目”和“创建 Hello MIDlet”复选框(缺省情况下,这两个复选框均处于选中状态)。单击“下一步”。
将 J2ME Wireless Toolkit 作为选定的目标平台。
单击“完成”。此时 IDE 创建了 $PROJECTHOME/MyHello 项目文件夹。该项目文件夹包含了所有源代码和项目元数据,如项目 Ant 脚本。
应用程序本身会显示在可视 Mobile 设计器的“流设计”窗口中。

编辑 Java 源代码
现在,让我们编辑 MIDlet 所显示的文本。
单击“屏幕设计”。
这将打开“屏幕设计器”窗口并显示 helloForm[Form] 屏幕,这是应用程序中唯一可用的屏幕。
双击 "Hello world!" 文本并键入某些新文本。
编译并运行项目
从“运行”菜单中选择“运行”>“运行主项目”(F6)。双击“输出”窗口将其最大化,以便查看所有输出内容。请注意,HelloMIDlet.java 文件是在执行之前构建的。这样便会打开一个设备仿真器以显示执行的 MIDlet 结果。缺省设备仿真器为 DefaultColorPhone。
在设备仿真器窗口中,单击“启动”命令下面的按钮。设备仿真器将启动 MIDlet,并显示在源代码中输入的文本。
单击 "Exit" 下面的按钮关闭 MIDlet,然后,单击设备右上角的按钮关闭仿真器窗口。
使用源代码编辑器创建 MIDP 应用程序
使用源代码编辑器时,您可以为 MIDlet 手动创建代码。通过在源代码编辑器中创建代码,您可以更灵活地编辑代码,并且可以插入预处理程序代码块。
现在,我们将使用“新建项目”和“新建文件”向导来创建同一个应用程序,并使用源代码编辑器来完成该代码。
创建新的 Java ME MIDP 项目
选择“文件”>“新建项目”(Ctrl-Shift-N)。分别在“类别”下选择 "Mobile",在“项目”下选择“Mobile 应用程序”,然后单击“下一步”。
在“项目名称”字段中输入 MyHelloMIDlet。将项目位置更改为系统上的任意目录。从现在起,我们将该目录称为 $PROJECTHOME。
选中“设置为主项目”复选框,并取消选中“创建 Hello MIDlet”复选框。单击“下一步”。
将 J2ME Wireless Toolkit 作为选定的目标平台。
单击“完成”。此时 IDE 创建了 $PROJECTHOME/MyHelloMIDlet 项目文件夹。该项目文件夹包含了所有源代码和项目元数据,如项目 Ant 脚本。
在“项目”窗口中右键单击 MyHelloMIDlet 节点,然后选择“新建”>“文件/文件夹”。
分别在“类别”下选择 "MIDP",在“文件类型”下选择 "MIDlet",单击“下一步”。
输入 HelloMIDlet 作为 MIDlet 名称。单击“完成”。将创建 HelloMIDlet.java 文件。
双击 HelloMIDlet.java 文件以在编辑器中显示源代码。
在源代码编辑器中单击,然后将
public class HelloMIDlet extends MIDlet
更改为
CODE:
public class HelloMIDlet
extends MIDlet implements javax.microedition.lcdui.CommandListener
{
将以下文本添加到 startApp() 方法的前面:
public HelloMIDlet() {
}private void initialize() { javax.microedition.lcdui.Display.getDisplay(this).setCurrent(get_helloTextBox());}
public void commandAction(javax.microedition.lcdui.Command command, javax.microedition.lcdui.Displayable
displayable) { if (displayable == helloTextBox) { if (command == exitCommand) { javax.microedition.lcdui.Display.getDisplay(this).setCurrent(null); destroyApp(true); notifyDestroyed(); } }
}
private javax.microedition.lcdui.TextBox get_helloTextBox() { if (helloTextBox == null) { helloTextBox = new javax.microedition.lcdui.TextBox(null, "Test String",120, 0x0); helloTextBox.addCommand(get_exitCommand()); helloTextBox.setCommandListener(this); } return helloTextBox;}
private javax.microedition.lcdui.Command get_exitCommand() { if (exitCommand == null) { exitCommand = new javax.microedition.lcdui.Command("Exit", javax.microedition.lcdui.Command.EXIT,
1); } return exitCommand;}
javax.microedition.lcdui.TextBox helloTextBox;javax.microedition.lcdui.Command exitCommand;
将 initialize(); 一行添加到 startApp() 方法中,如下所示:
public void startApp() {
initialize();
}
编辑 Java 源代码
现在,我们来添加一些文本以便由 MIDlet 进行显示。
在 get_helloTextBox() 方法中,用所选的文本替换 "test string" 代码。例如,"Hello World"。
编译并运行项目
从“运行”菜单中选择“运行”>“运行主项目”(F6)。双击“输出”窗口将其最大化,以便查看所有输出内容。请注意,HelloMIDlet.java 文件是在执行之前构建的。这样便会打开一个设备仿真器以显示执行的 MIDlet 结果。缺省设备仿真器为 DefaultColorPhone。
在设备仿真器窗口中,单击“启动”命令下面的按钮。设备仿真器将启动 MIDlet,并显示在源代码中输入的文本。
单击 "Exit" 下面的按钮关闭 MIDlet,然后,单击设备右上角的按钮关闭仿真器窗口。
更改仿真器平台
仿真器平台是由移动电话制造商提供的,因此开发商在对应用程序进行编码、调试和测试时,可以模拟特定的移动设备行为。NetBeans Mobility Pack 中包含 J2ME Wireless Toolkit,并且支持许多其他的软件开发工具包 (Software Development Kit, SDK),您可以通过提供商站点(如 Nokia、Sony Ericsson 或 Motorola)下载这些工具包。
更改缺省的仿真器设备
右键单击 "MyHello" 项目节点,然后选择“属性”。在“属性”对话框中,选择“平台”节点。可以在其中更改缺省配置的设备。
单击“设备”下拉列表,然后选择 "QwertyDevice"。单击“确定”。
重新运行应用程序,此时该应用程序在 QwertyDevice 仿真器中运行。
添加新的仿真器平台
从主工具栏中选择“工具”>“Java 平台管理器”。
在“Java 平台管理器”对话框中,单击“添加平台”按钮。
在“选择平台类型”页中,选择“Java Micro Edition 平台仿真器”。单击“下一步”。
在“平台”页中,IDE 会搜索所有可用的 Java ME 平台并将它们列在窗口中。IDE 将验证符合统一仿真器接口 (Unified Emulator Interface, UEI) 标准的平台,并且在这些平台名称旁边的复选框中会出现复选标记。不符合 UEI 的平台或因其他原因而无法安装的平台将以红色标记列出。该向导还可以标识已安装的平台。
注意:要安装不符合 UEI 的平台,请单击“上一步”按钮,然后选择“定制 Java Micro Edition 平台仿真器”。
在“平台”页中,选中要安装的任何平台仿真器旁边的复选框,单击“完成”。然后单击“关闭”。
系统将安装选定的一个平台或多个平台。
选择“文件”>“'MyHello' 属性”。
选择“平台”节点,然后从“仿真器平台”下拉菜单中选择新仿真器的名称(例如,J2ME Wireless Toolkit 2.2)。单击“确定”。
使用配置
可以使用配置为项目创建多组分发 JAR 和 Java 应用程序描述符 (Java Application Descriptor, JAD) 文件。这样,就可以创建一组源代码,并为要编程的每个移动设备定制这些源代码。
添加配置
右键单击 "MyHello" 项目节点,然后选择“属性”。在“属性”对话框中,从“项目配置”下拉列表中选择“添加配置”。这将打开“添加配置”对话框。
在“配置名称”字段中为配置输入一个名称。该名称会标识一个目标平台,您将在该目标平台上部署为此配置创建的 JAR/JAD。例如,输入 BlackWhiteDisplay,然后单击“确定”。至此,您就创建了一个新的配置。
也可以通过单击“属性”对话框中的“管理配置”按钮来添加配置。这将打开“项目配置管理器”对话框,该对话框包含用于添加、删除或复制配置的选项。
定制配置
您可以根据需要在项目中添加任意数量的配置。然后,可以在“项目属性”对话框中修改已添加的每个配置的设置。
右键单击 "MyHello" 项目节点,然后选择“属性”。在“属性”对话框中,选择“平台”节点。这将打开“J2ME MIDP 配置”对话框。
从“属性”对话框顶部的配置组合框中选择 BlackWhiteDisplay 配置。
“平台”对话框中的所有组件将被禁用。这是因为,该配置当前采用此面板中缺省配置所使用的值。取消选中面板底部的“使用 "DefaultConfiguration" 中的值”选项。现在就可以编辑此面板上的所有组件了。
将“设备”选项更改为 "DefaultGrayPhone"。
切换“属性”对话框顶部的“项目配置”对话框,并观察“设备”选项随当前选定配置的变化而变化的情况。此配置定制方法适用于对话框中的每个面板(常规面板除外)。单击“确定”可保存配置更改并退出“属性”对话框。
创建性能
在创建某个性能时,可以将其与一个或多个支持某个特定属性或属性集合的项目配置相关联。然后,可以将此性能与一个或多个支持该属性的代码块相关联。如果之后需要添加或删除配置,则无需检查所有代码,也无需将此配置与每个代码块相关联,只需将此配置与某个性能相关联即可。该配置会自动与此性能关联的任意代码块相关联。
右键单击 "MyHello" 项目节点,然后选择“属性”。
从“类别”菜单树中选择“性能”页。
从“项目配置”下拉菜单中选择一个配置。这是与该性能关联的配置。
如有必要,请取消选中“使用 "DefaultConfiguration" 中的值”复选框。
单击“添加”按钮。
这将打开“添加性能”对话框。
在“添加性能”对话框中输入性能的名称,或者从下拉菜单中选择一个性能。(可选)为该性能输入一个值。
单击“确定”关闭“添加性能”对话框。现在,此性能将与选定的项目配置相关联。
可以使用以下方法将此性能与其他配置相关联:从“项目配置”菜单中选择一个不同的配置,然后单击“添加”按钮。
添加特定于配置的代码(预处理程序代码)
可以使用预处理程序块来创建、管理和跟踪特定于一个或多个项目配置或性能的代码。预处理程序块将只根据您指定的配置或性能启用(或禁用)代码。
在 HelloMIDlet.java 编辑器窗口中,右键单击要实例化 TextBox 的源代码行 (helloTextBox = new javax.microedition.lcdui.TextBox(null, "Hello, World",120, 0x0);)。
右键单击该行,然后选择“预处理程序块”>“创建 If/Else 程序块”。在第一个粉红色部分,将 "Color" 字样附加到 "Hello World" 字符串的后面。在第二个灰色部分,将 "Gray" 添加到 "Hello World" 字符串的后面。
每当活动配置与指令值(此处为 DefaultConfiguration)匹配时,//#if 预处理程序指令标记的代码将生效。每当活动配置与预处理程序值不匹配时,将使用 //#else 预处理程序指令标记的代码。
换句话说,每当活动平台为 "DefaultConfiguration" 时,仿真器将显示 "Hello World Color";如果活动平台是任何其他仿真器平台,则显示 "Hello World Gray"。//#endif 预处理程序指令将完成预处理程序块。
可以通过使用不同的仿真器设备运行 MIDlet 来测试预处理程序代码,如更改仿真器平台中所述。
运行配置
既可以单独生成并运行配置,也可以同时生成并运行配置。
右键单击 "MyHello" 项目节点,然后选择“运行”。
可以通过以下方法激活不同的配置:右键单击 "MyHello" 项目节点,选择“设置活动项目配置”,然后选择一个不同的配置。也可以使用每个文本编辑器中的配置组合框来执行此操作。重新运行项目。
将会出现两个仿真器,一个为彩色,一个为灰色。灰色仿真器显示 "Hello World Gray";彩色仿真器显示 "Hello World Color"。
创建客户端-服务器应用程序
可以使用 IDE 来创建客户端 MIDlet,它通过直接的“两层”体系结构连接至 Web 服务,或者通过“三层”体系结构连接至 Web 服务(利用中间件 Web 应用程序)。
IDE 提供了两个用于创建连接类的向导:
如果要使用 JSR-172 Web 服务规范创建与 Web 服务的“两层”连接,请使用“J2ME Web 服务客户端”向导。该向导可以创建桩模块(客户端代理)文件以及(可选)调用 Web 服务的样例客户端 MIDlet。要使用此向导,您必须具有支持 JSR-172 规范的设备或仿真器平台。
如果设备不支持 JSR-172 Web 服务规范,请使用 Web 应用程序的 Mobile 客户端生成器来创建到 Web 服务的“三层”连接。此向导会生成一个 Servlet,它可连接到包含 Web 服务客户端的 Web 应用程序。使用 Web 应用程序的 Mobile 客户端生成器之前,必须具有包含 Web 服务客户端的 Web 项目。
创建 Java ME Web 服务
(JSR-172) 客户端
右键单击某个项目节点,然后选择“新建文件/文件夹”。
在“新建文件”向导的“类别”下,选择 "MIDP"。在“文件类型”下,选择“J2ME Web 服务客户端”。
为要添加到项目中的 Web 服务指定 WSDL 文件位置。
如果 WSDL 服务位于 Web 上:
选择“运行 Web 服务”并输入 WSDL 文件的 URL,然后为检索的 WSDL 输入本地文件名。
如果您处于防火墙的保护下,请单击“代理设置”以指定相应的 HTTP 主机和端口。
单击“检索 WSDL”以获取 WDSL 文件的本地副本。IDE 将下载 WSDL 文件。
如果环境中包含 WSDL 文件,请选择“现有的 WSDL 文件”并输入文件名。
将检索该 WSDL 文件,并使用从 WSDL 文件名获取的缺省名称来填充页面上的其余字段。
按“完成”。
IDE 将创建一个打开的设置文件并生成客户端桩模块。
在极少数的情况下,您可能需要将 CLDC 1.1 类型转换为 CLDC 1.0 类型,这意味着浮点和双精度类型会转换为字符串变量。要进行转换,请在设置文件中选中“将浮点转换为字符串”复选框,然后单击“生成桩模块”按钮。
如果您处于防火墙的保护下,则在 NetBeans 中没有可供 HTTPS 代理使用的公共设置。要解决此问题,请在命令行中使用命令 -J-DhttpsProxy.host 和 -J-DhttpsProxy.port 运行 IDE,或将代理设置添加到 /etc/netbeans.conf 文件中。
请不要编辑生成的文件。在重新生成这些文件时,对其所做的任何更改将会丢失。
使用 Web 应用程序的 Mobile 客户端生成器
可以使用以下方法打开 Web 应用程序的 Mobile 客户端生成器:从“项目”视图中选择一个 Mobile 项目,然后选择“文件”>“新建文件”。在“类别”中,选择 "MIDP"。在“文件类型”中,选择“Web 应用程序的 Mobile 客户端”。单击“下一步”。
在“Servlet 和客户端类型”页中,为生成的服务器代码选择 Web 项目、Servlet 名称以及包。
在同一页中,选择与 MIDlet 交互的 Web 应用程序的类型:
如果 Mobile 客户端直接连接到不使用 Web 服务的 Web 应用程序,则选择“Web 应用程序中的方法”。
如果 Mobile 客户端通过中间件 Web 应用程序连接到 Web 服务,则选择“Web 应用程序中的 Web 服务客户端”,然后使用下拉菜单来选择 Web 服务客户端。
在“服务选择”页中,指定要从服务器导出到客户端应用程序的服务。
在“客户端选项”页中,为生成的客户端类选择名称和包。
在同一页中,还可以确定要生成的代码类型:
用于每种导出服务的桩模块方法
允许每次会话中有多个调用的代码
允许使用浮点值的代码
跟踪代码
可以检查和修改的样例 MIDlet
模板用于创建:
Java ME 客户端类
Servlet 和支持类
xml 格式的映射文件
可以检查和修改的 MIDlet(如果选择)。
Java ME 客户端、映射文件和 MIDlet 是在 Java ME 项目中生成的。Servlet 和支持类是在 Web 项目中生成的,而 Servlet 还将被添加到 Web 应用程序 (web.xml) 中。
本地化应用程序
本地化是软件设计的一个过程,您无需对软件进行任何工程更改即可将其改编(本地化)为不同语言和区域的软件。当本地化应用程序时,会为应用程序中的每个元素(如屏幕文本、菜单和图标)提供替换的语言值。
添加本地化支持
创建初始化本地化支持的 Java 类和消息属性文件。
右键单击 "MyHello" 项目节点,然后选择“新建”>“文件/文件夹”。
分别在“类别”下选择 "MIDP",在“文件类型”下选择“本地化支持类”,单击“下一步”。
通过单击“完成”接受缺省值。这会创建文件 LocalizationSupport.java 和 messages.properties。
更改国际化字符串和搜索格式。
选择“工具”>“选项”,然后单击“高级选项”按钮。
在“选项”菜单树中选择“国际化”节点。
在“属性”窗口中:
将“国际化字符串格式”属性值更改为 LocalizationSupport.getMessage("{key}")
将“国际化搜索格式”属性值更改为 (getString|getBundle|getMessage)[:space:]*\([:space:]*{hardString}|//NOI18N
添加本地化键及其值。
选择“工具”>“国际化”>“国际化向导”。这将打开“国际化向导”。
选择 HelloMIDlet MIDlet 作为要国际化的源文件。单击“下一步”。
选择 messages.properties 资源文件作为存储国际化字符串值的文件。单击“下一步”。
修改为 HelloMIDlet MIDlet 指定的每个键的值字段。
在所有字符串被添加到 messages.properties 文件后,请执行以下操作添加每种新语言环境的值:
右键单击“项目”视图中的文件节点,然后选择“添加语言环境”。
从“预定义的语言环境”列表框中选择要支持的语言环境,或者使用窗体顶部的组合框来定义新的语言环境。
展开“项目”视图中的 message.properties 节点,然后双击新添加的语言环境。
将所有属性转换为相应的语言。
添加代码以初始化本地化。
在需要对键(LocalizationSupport.getMessage("Key");)进行本地化的 MIDlet 中输入以下字符串:
例如,LocalizationSupport.getMessage("LAB_NextButton");
Mobile 应用程序将使用 microedition.locale 属性来确定应使用的 messages.properties 文件版本。
闽公网安备 35060202000074号