面我用了很大的篇幅介绍如何使用J2ME开发运行于移动设备上的应用程序,并且在我第一篇文章中我在谈论开发Palm应用程序可以使用的解决方案时也提到了其他几种方案。本文中我们将开始学习Waba,学习使用它编写运行于Palm上的应用程序。Waba是一种源码开放、很像Java的语言。如果你了解 Java,你就能知道Waba的语法。
第一节 用户界面控件
让我们从用户界面类开始学习Waba,因为一个PDA上很少有程序在没有用户界面的情况下可用,然后我们再谈谈Waba种的数据持久性。构建图形用户界面的大部分类都包含在 waba.ui包中。这些类的继承层次结构非常像 Java的 AWT。当然,它们全部都是扩展 java.lang.Object和 waba.ui.Control。我建议你参照 waba.ui程序包的文档来弄明白用于执行像放置一个控件、使它可见等常见任务的静态数据成员和方法。下面的类扩展了waba.ui.Control:
Button --命令按钮
Check --复选框控件
Container --另外一个控件的容器 (类似于 AWT Panel或一个 Swing Jpanel )。
Edit --一个文本输入编辑控件 (类似于 TextField )
Label --标签控件
MainWindow --指向一个基于用户界面的应用程序的主要输入端。所有的 GUI应用程序都必须有。
Radio --单选按钮。
TabBar/Tab/TabPanel -- TabBar是用于选项卡的容器。
作为这些类的祖先, Control类包括用于事件处理和绘画控制的方法。让我们看一个简单的 Waba应用程序的例子。这个 Waba应用程序能够提示使用者一些信息,在本例中,在一个联系管理器中查寻一个名字。
这个类的代码是
import waba.ui.*;
public class ContactManager extends MainWindow
{
Edit edit;
Label label;
Button button;
public ContactManager()
{
setTitle("Contact Manager");
setBorderStyle(Window.RECT_BORDER);
label = new Label("Enter name to search for:");
label.setRect(5, 65, 110, 15);
add(label);
Edit edit = new Edit();
edit.setRect(55, 80, 60, 15);
add(edit);
button = new Button("Find");
button.setRect(65, 110, 30, 15);
add(button);
}public void onEvent(Event event)
{
if (event.type == ControlEvent.PRESSED)
{
if (event.target == button)
{
.......
}
}
}} |
首先,我们导入 waba.ui包,因为所有的用户界面类都在那里。这个类是扩展 MainWindow。每个有用户界面的 Waba应用程序都必须扩展 MainWindow。接下来,我们声明需要的变量:一个 Edit、一个 Label和一个 Button。在构造程序中,我们调用 setTitle和 setBorder,然后启动每一个 GUI组件。注意,我们还可以使用控件的绝对位置。这是 Waba和 Java之间的一个区别。这里没有布局管理器的概念,我们把 x和 y坐标以及控件的宽度和高度传递进程序,这个控件就被放置在屏幕上的这个位置。 |