Hello LWUIT——LWUIT开发指南2
第二章 使用LWUIT控件
这章介绍了LWUIT控件,并给一些组件提供示例代码。
2.1 组件
组件(Component)是一个具备图形表现能力的对象,它可以显示在屏幕上,并与用户进行交互。典型图形化UI中的按钮,多选框,单选按钮都是组件的例子。组件是一个基本的类。在LWUIT库中的所有控件(widgets)使用混合的样式的方法,这与AWT中容器(Container)和组件(Component)的关系类似。
2.2 容器
容器(Container)是由组件对象组成的混合样式。它可以通过使用可插式的布局管理器架构嵌套并排列各种组件。容器可以一个嵌套在另一个上,从而形成精致的用户接口。增加进容器的组件在以列表的形式呈现。这个顺序是通过组件在容器中从前到后的栈的顺序定义的。如果在你增加组件进入容器的时候没有指定一个序号,那么它就增加在这个列表的后面。
2.3 表单
表单(Form)是一个顶层的组件,作为UI库的根来服务的。这个容器处理标题和目录,并且允许在它们之间放置上内容。表单中间的内容默认是可滑动的。表单包括标题栏。菜单栏和内容框。表单的addComponent方法的调用代表向内容框中增加组件。这同样适合于大多数复合相关的方法(e.g. setLayout, getComponent等等)。
EXAMPLE 2-1 创建和设置一个表单
下面的代码演示了一个表单的穿件和设置。
//1.创建一个表单
Form form = new Form("Form Title");
//2.设置布局管理器
form.setLayout(new BorderLayout());
//3.在表单的内容框中的中间增加一个标签
form.addComponent(BorderLayout.CENTER,
new Label("Hello World,Hello Form in LWUIT"));
//4.设置褪去的渐变动画
form.setTransitionOutAnimator(CommonTransitions.createFade(400));
//5.添加一个软键
form.addCommand(new Command("Run", 2));
//6.显示它
form.show();
2.4 标签
标签(Label)控件可以显示单行文字和/或一张图片,并且可以使用多种选项排列他们。如果你需要创建一个显示字符,图片或者这个两个的组件,你应该使用或者扩展标签控件。如果这个组件是交互式的并有一个指定的状态,按钮(Button)控件更适合(代替标签)。
使用下面的请求创建一个标签:
// 一个文字标签
Label textLabel = new Label("I am a Label");
// 创建一个图像标签
Image icon = Image.createImage("/images/duke.png");
Label imageLabel = new Label(icon);
标签可以按照下面的位置排列:CENTER, LEFT, RIGHT.,LEFT是默认的。另外文字可以相对于图片的位置进行排列,有效值是TOP, BOTTOM, LEFT, RIGHT,默认值是RIGHT。更改文字的位置使用:
setTextPosition(int alignment);
图2-2显示了三种带有文字的标签。这个容器被分为三排,每一排中的标签尽可能的宽。图2-3显示了文字在图片下面的相对排列。
2.5 按钮
按钮(Button)可以在用户定位并点击它时让GUI开发者接收到动作事件。在一些现实设备上,按钮比一个软件选项更有用。对于几个可以接收点击事件的UI控件来说,按钮是一个基本类,它有三种状态:翻动,按下和默认状态。它同样有一个当按钮点击时候做出反应的ActionListener。
为了获取用户点击的事件,你必须实现一个ActionListener,当用户点击按钮时,它可以监听到。下面的代码段创建了一个动作监听器,并当用户点击按钮时,改变按钮的文字。
final Button button = new Button("Old Text");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button.setText("New Text");
}
});
按钮继承于标签,所以你也可以创建三种类型的按钮:只有文字,只有图片或者文字和图片都有的按钮。