FeaturesPluginsDocs & SupportCommunityPartners

可视 Mobile 设计器自定义组件:登录屏幕

由 Karol Harezlak 创建

可视 Mobile 设计器(VMD) 是 NetBeans Mobility 包中的图形界面,允许您使用拖放组件来设计移动应用程序。VMD 允许使用 Mobility 包提供的组件或您自己设计的组件来定义应用程序流程和设计 GUI。VMD 包含许多标准 User Interface (UI) 组件,可用于创建 Lists、Alerts、Forms 和 Images 等应用程序。它还包括一些自定义组件,可用于简化一些比较复杂的功能的创建,比如等待屏幕、启动屏幕、表格项目等。

此页面上的内容适用于 NetBeans IDE 6.0登录屏幕自定义组件提供了一个十分有用的用户界面,其中包含许多标准元素,比如 Username Field、Password Field 和 Login Button。可以使用此自定义组件创建登录界面以访问受保护的功能,比如 GSM 银行业务。

应用程序概述

本例显示如何在客户机应用程序中使用登录屏幕自定义组件,以及如何使用已认证的访问将其连接到服务器资源。除 NetBeans Mobility“项目”之外,我们还需要使用 NetBeans Web Project。要完成此教程,必须知道如何处理 NetBeans Web Projects,以及如何具有对 web 应用服务器(比如 GlassFish 或 Tomcat)的本地或远程访问。如果您不了解 NetBeans Mobility 或 J2EE,则应在继续之前先阅读 NetBeans 6.0 Mobility CLDC/MIDP 快速入门指南开发 Web 应用程序简介

安装和运行示例应用程序

开始之前,您可能希望查看本教程的最终结果。

需求

必须在计算机上安装以下软件才能开始:

  • NetBeans IDE 6.0 with Mobility Pack and J2EE and Web support(下载
  • Java Standard Development Kit (JDK) 版本 6.0(下载)。
  • 对 Web 应用服务器的远程或本地访问

执行以下步骤安装 LoginScreenExample 应用程序:

  1. 下载 LoginScreenExample.zip。此下载包含 NetBeans Mobility 项目。
  2. 下载 LoginScreenServletExample.zip。此下载包含 NetBeans Web 项目。
  3. 解压文件。
  4. 在 IDE 中,通过选择“文件”>“打开项目”打开两个项目,并浏览包含带有项目的已解压文件的文件夹。
  5. “项目”窗口应如下所示:
    打开了登录屏幕和登录屏幕Servlet 示例的“项目”窗口
  6. Mobility“项目”LoginScreenExample 的“导航”窗口 应如下所示:
    打开了登录屏幕示例的“项目”窗口
  7. 在“项目”窗口中,右键单击项目 LoginScreenServletExample 节点并选择“运行项目”选项(也可以按 F6 键)。确保应用服务器在端口 8080 上运行。第二步是右键单击项目 LoginScreenExample 节点并选择“运行项目”。在应用程序运行时,一个仿真程序窗口将打开并显示正在默认设备仿真程序中运行的应用程序。
  8. 在“仿真器”窗口中,单击“启动”下方的按钮。
    仿真程序显示启动屏幕组件,之后是登录屏幕,如下所示:

    显示示例登录屏幕应用程序的 WTK 2.5 仿真程序
  • 上下移动鼠标允许您在“登录”和“密码”之间导航。
  • 单击“用户名”字段并键入 john,然后在仿真程序中点“确定”按钮。
  • 单击“密码”字段并键入 peanut,然后在仿真程序中点“确定”按钮。
  • 在“登录”下单击按钮以完成。
  • 如果应用程序连接到服务器,则将看到 alertSuccess 组件显示在带有 Login Successful 消息的屏幕上。

使用登录屏幕自定义组件创建应用程序

既然已经看到了正在运行的登录屏幕组件,让我们返回起点创建此应用程序。在本教程中,我们将仅使用 NetBeans Mobility 包创建 Java ME 客户机。如果要了解有关此应用程序的服务器端的更多信息,请参阅 LoginScreenServletExample 项目源码。要创建 Java ME 客户机应用程序,请执行以下操作:

  1. 创建 LoginScreenExample 项目
  2. 将软件包和可视 MIDlet 添加到 LoginScreenExample 项目中
  3. 将组件添加到 LoginScreenExample 中
  4. 将命令添加到登录屏幕组件中
  5. 连接组件以创建应用程序流程
  6. 添加其他源码
  7. 运行项目

创建 LoginScreenExample 项目

  1. 选择“文件”>“新建项目”(Ctrl-Shift-N)。在“类别列表”中,选择“移动”选项。在“项目”列表中,选择“MIDP 应用程序”选项并单击“下一步”按钮。
  2. 在“项目名称”字段中输入 LoginScreenExample。将“项目位置”更改为您系统上的任意目录。我们将此目录称为 $PROJECTHOME
  3. 取消选中“创建 Hello MIDlet”复选框。单击“下一步”按钮。
  4. 保留 Sun Java 无线工具包(Wireless Toolkit)为选中的“目标平台”。单击“下一步”、“完成”。
  5. 注意:项目文件夹包含所有源码和项目元数据,比如项目 Ant 脚本。应用程序将显示在可视 Mobile 设计器的“流设计”窗口中。

将软件包和可视 MIDlet 添加到 LoginScreenExample 项目中

  1. 在“项目”窗口中选择 LoginScreenExample 项目,然后选择“文件”>新建文件(Ctrl-N)。在“类别列表”中,选择“Java 类”选项。在“文件类型”列表中,选择“Java 包”选项。单击“下一步”按钮。
  2. 在“包名称”字段中输入 loginscreenexample。单击“完成”按钮。
  3. 在“项目”窗口中选择 loginscreenexample 软件包,然后选择“文件”>新建文件(Ctrl-N)。在“类别列表”中,选择 MIDP 选项。在“文件类型”列表中,选择“可视 MIDlet”选项。单击“下一步”按钮。
  4. 在“MIDlet 名称”和“MIDP 类名”字段中输入 LoginScreenExample。单击“完成”按钮。

将组件添加到 LoginScreenExample 中

  1. 将“可视 MIDlet”切换到“流设计器”窗口。将“组件面板”中的以下组件拖放至“流设计器”中:
    • 启动屏幕
    • 等待屏幕
    • 登录屏幕
    • 报警(两次)
  2. 单击 splashScreen,并在“属性”窗口中将属性“文本”的值从 null 更改为 LoginScreenExample。
  3. 单击 alert 组件,并在“属性”窗口中将属性“实例名称”的值更改为 alertError。以相似的方式,将 alert1 的属性“实例名称”更改为 alertSuccess。
  4. 返回到 alertError 组件,并在“属性”窗口中将属性“字符串”的值更改为 Error。
  5. 单击 waitScreen 组件,并在“属性”窗口中将属性“文本”的值更改为 Please Wait...。

将命令添加到 LoginScreenExample 中

  1. 打开“流设计器”窗口。
  2. 从“组件面板”的“命令”部分中选择“退出命令”选项。将其拖放至“流设计器”窗口(loginScreen 组件)中。

连接组件

  1. 在流设计窗口中,单击“移动设备”上的 Started 文本并将其拖至 splashScreen 组件中。以同样的方式将组件连接到一起,如下图所示。

    显示组件用命令行连接的流设计器

添加其他源码

  1. 在 LoginScreenExample.java 源码的声明部分中,添加以下代码:private boolean login = false;
  2. 在源码结尾,粘贴以下代码:
  3.  private void login() throws IOException {
       //URL
       String url = "http://localhost:8080/LoginScreenExample/"
                    + "?username=" + getLoginScreen().getUsername()
                    + "&password=" + getLoginScreen().getPassword();
       //Clean up alertSuccess
       getAlertSuccess().setString("");
       //Connect to the server
       HttpConnection hc = (HttpConnection) Connector.open(url);
       //Authentication
       if (hc.getResponseCode() == HttpConnection.HTTP_OK) {
            login = true;
       }
       //Closing time...
       hc.close();
       //Take action based on login value
       if (login) {
            getAlertSuccess().setString("Login Succesfull");
       } else {
            getAlertSuccess().setString("Wrong Username or Password");
       }
       login = false;
     }

    此代码负责将带有有关用户名和口令的信息的请求发送到服务器,如果登录过程成功,还负责接收回答。可以通过按 Ctrl+Shift+I 更正源码导入。

运行项目

在运行客户机应用程序之前,确保服务器端应用程序已部署且正在运行。
  1. 要运行移动客户机应用程序,请选择“运行”>“运行主项目”,或按 <F6> 运行主项目。

了解有关登录屏幕组件的更多信息

NetBeans IDE 为登录屏幕组件以及可以在 VMD 中使用的其他组件提供了 API Javadocs。要阅读登录屏幕组件的 Javadocs,请执行以下操作:

  1. 选择“帮助”> Javadocs References > org.netbeans.microediton.lcdui。文件将在 web 浏览器中打开。
  2. 单击 org.netbeans.microedition.lcdui 以查看组件信息的链接。



相关教程

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Open ESB - The Open Enterprise Service Bus Powered by