FeaturesPluginsDocs & SupportCommunityPartners

可视 Mobile 设计器自定义组件:文件浏览器

由 Karol Harezlak 创建

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

文件浏览器是自定义组件,提供了一个用户界面以使用设备文件系统。它提供了浏览设备存储内存的内容的基本功能。此组件使用 FileConnection API,此 API 是 Java ME Platform 的 PDA Optional Packages 的 JSR-75 规范 的一部分。JSR-75 不是 MIDP 2.0 规范的一部分,因此此自定义组件只能与支持 JSR-75 的设备一起使用。

应用程序概述

本例显示如何在支持 JSR-75 的设备的移动应用程序中使用文件浏览器组件。您将学习组件的基本功能,以及如何浏览设备内存存储的内容并显示选定文本文件的内容。

除文件浏览器自定义组件之外,我们还使用其他两个 MIDP 组件:启动屏幕和文本框。

需求

开始之前,需要在您的计算机中安装以下软件:

安装和运行示例应用程序

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

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

  1. 下载 filebrowserexample.zip
  2. 解压文件。
  3. 在 IDE 中,选择“文件”=>“打开项目”并浏览到包含已解压文件的文件夹。
  4. 打开“项目”和“检查工具”窗口。它应如下所示:
    打开了文件浏览器示例的“导航”和“项目”窗口
  5. 在“项目”窗口中,右键单击项目节点并选择“运行项目”选项(也可以按 F6 键)。在应用程序运行时,一个仿真程序窗口将打开并显示正在默认设备仿真程序中运行的应用程序。
  6. 在“仿真器”窗口中,单击“启动”下方的按钮。
    仿真程序显示“启动屏幕”组件,之后是“文件浏览器”组件,如下所示:

    显示示例文件浏览器应用程序的 WTK 2.5 仿真程序

  • 上下移动鼠标以浏览可用文件和文件夹。
  • 单击“选择”下方的按钮以打开文件夹或文件。
  • 单击“退出”下方的按钮以关闭应用程序。

使用文件浏览器自定义组件创建应用程序

既然已经看到了正在运行的文件浏览器组件,让我们返回起点创建此应用程序。要创建应用程序,请执行以下操作:

  1. 创建 FileBrowserExample 项目
  2. 将软件包和可视 MIDlet 添加到 FileBrowserExample 项目中
  3. 将组件添加到 FileBrowserExample 中
  4. 将命令添加到文本框和文件浏览器组件中
  5. 连接组件以创建应用程序流程
  6. 将方法 loadTextFile 插入到源码中
  7. 将文件添加到无线工具包(Wireless Toolkit)存储中
  8. 运行项目

创建 FileBrowserExample 项目

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

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

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

将组件添加到 FileBrowserExample 中

  1. 将可视MIDlet 切换到“流设计器”窗口。将“组件面板”中的以下组件拖放至“流设计器”中:
    • 启动屏幕
    • 文本框
    • 文件浏览器
  2. 单击“启动屏幕”,并在“属性”窗口中将属性“文本”的值从 null 更改为文件浏览器Example。

将命令添加到 FileBrowserExample 中

  1. 打开“流设计器”窗口。
  2. 从“组件面板”的“命令”部分中选择“退出命令”选项。将其拖放至“流设计器”窗口(fileBrowser 组件)中。
  3. 从“组件面板”的“命令”区域中选择“返回”命令,并将其拖放至文本框组件中。

连接组件

  1. 在流设计窗口中,单击“移动设备”上的“开始点”并将其拖至 spalshScreen 组件中。使用相同的方式,将下图所示的组件连接在一起。

    显示组件按命令行连接的“流设计器”

将预操作插入到源码中

  1. 切换到“源”窗口。
  2. 在源码结尾插入以下代码。此方法负责读取选定的文件:

  3.     /**
        * Read file
        */
        private void readFile() {
            try {
                FileConnection textFile = fileBrowser.getSelectedFile();
                getTextBox().setString("");
                InputStream fis = textFile.openInputStream();
                byte[] b = new byte[1024];
                int length = fis.read(b, 0, 1024);
                fis.close();
                if (length > 0) {
                    textBox.setString(new String(b, 0, length));
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        
  4. 在源码中查找 commandAction 方法:将 readFile();
    插入到 FileBrowser.SELECT_FILE_COMMAND 的预操作部分中(恰在以下代码之后:if (command == FileBrowser.SELECT_FILE_COMMAND),在此处指明 //insert pre-action code here)

将文件添加到无线工具包(Wireless Toolkit)存储内存中

 

要将其他文件添加到 WTK 存储内存中,请阅读 Sun Java 无线工具包(Wireless Toolkit)for CLDC User's Guide(节:4.3.2.1 Persistent Storage)使用仿真程序 已添加的文件和文件夹可以使用文件浏览器应用程序来查看。

运行项目

  1. 按 <F6> 运行主项目或选择“运行”>“运行主项目”。

了解有关文件浏览器组件的更多信息

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

  1. 选择“帮助”Javadoc References org.netbeans.microediton.lcdui.pda
  2. 单击 org.netbeans.microedition.lcdui.pda 以查看组件信息的链接。




相关教程

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