Java手机软件图形界面API之Form相关API

欲扬先抑prince

欲扬先抑prince

2016-02-19 11:59

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。
除了基于屏幕的组件外,你还应该掌握使用表单把多个组件组织到一个屏幕上去。这一部分将讨论Form类和可以放置到表单上去的组件。

1. Form

一个表单对象是一个screen,它可以包含任意的项,包括只读的和可编辑的文本框,图像,日期域,gauge以及选项组组件。前面已提到,任何Item类的子类都可以放置到表单对象上去。Form类的构造器如下:

public Form(String title);
public Form(String title, Item[] items);

第一个构造器创建一个空的表单,仅有一个标题。第二个构造器创建一个含有标题和初始内容的表单。如,下面的程序创建一个空的表单,其标题是"Choose an Item",见图1。这是一个常规的屏幕。


图 1.一个空的form

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

Form form = new Form("Choose an Item");
Form对象并不使用任何布局管理器。代之的是,Form对象将象一个列表一样安排它的组件,通常是从顶到底。就象一个列表中的选项,表单中的各个项可以进行编辑,如插入,添加和删除。Form类的方法列举如下。

把一个图像加到表单的结尾,可以用:

public int append(Image img);
下面方法添加一个Item 的子类化对象到表单的结尾:

public int append(Item item);
下面方法添加一个字符串到表单的结尾:

public int append(String str);
下面方法删除表单上在给定位置的项,同时改变表单的大小:

public void delete(int itemNum);
你可以使用下面方法存取表单上的任何项,而表单内容保持不变。

public Item get(int itemNum);
下面方法在表单上插入一项,插在指定索引的前面:

public void insert(int itemNum, Item item);
下面方法替换表单上的前一项:

public int set(int itemNum, Item item);
最后,你可用下面size( )方法来查找表单上的项的当前序号:

public int size( );
可以放置到一个表单上去的GUI组件有:ChoiceGroup,DateField,Gauge,ImageItem,StringItem和TextField。所有这些都是抽象类Item 的子类。稍后,我们将看到如何把这些项放置到屏幕上去。首先让我们依次作一下介绍。

2. Item

Item抽象类用作可以放置到表单或者alert上的组件的基类。所有的Item对象都有一个标签(如有一个字符串依附到其上),这可以用下面方法存取:

public String getLabel( );
public void setLabel(String s);

该抽象类仅有这两个方法。

3. ChoiceGroup

ChoiceGroup对象描述了一组放置在表单上的可选择的选项。类似于List类,它也实现了Choice接口,而且还继承了Item抽象类。该对象可以指明选择一项,或者进行多个选择。ChoiceGroup类构造器如下:

public ChoiceGroup(String label, int choiceType);
public ChoiceGroup(String label, int choiceType,String[] stringElements, Image[] imageElements);

第一个构造器创建一个空的ChoiceGroup组件,同时指明其标签和类型。既然该类实现了接口Choice,你可能想到应该有三种选择。但是,在使用一个ChoiceGroup组件时,只有两个选项可用: EXCLUSIVE和MULTIPLE。IMPLICIT类型不适用于ChoiceGroup,就象对于List组件一样。在一个表单中不需要有一个象菜单的选项域(记住EXCLUSIVE方式只允许一次选择一项;MULTIPLE方式则允许一次选择多个项)。

第二个ChoiceGroup构造器用于创建一个新的ChoiceGroup对象,同时指明其标签和类型,还有一个字符串数组和一个图像数组来设置它的初始值。

一旦你创建一个空的选择,你就可以插入,添加或替换其中的选项,就象在一个List组件上一样。而且,每一个选项有一个整数索引值来代表其在列表中的位置。第一个选项从0开始,最后一项索引值是该列表的最大长度减1。ChoiceGroup 类提供了下面方法来完成这些操作。

public int append(String stringElement, Image imageElement);
public void insert(int index, String stringElement, Image imageElement);
public void set(int index, String stringElement, Image imageElement);

注意一个选项由一个字符串和一个可选的图像组成。如,下面代码演示了如何添加几个选项到前述的列表中。注意,方法append( )返回一个索引值(正是我们创建该项时指定给它的),以备后面之用。

int saveIndex = list.append("save", null);
int deleteIndex = list.append("delete", null);

而且,你可以用下面方法从该选项组中删除任何索引:

public void delete(int index);
如果你想检索任何索引指定的串元素或图像元素,可用下面方法:

public String getString(int index);
public Image getImage(int index);

如果你想设置,取消设置,检索当前选项组中选择的索引,或者查询任何索引以确定它是否为当前选定的项,可以用下面方法:

public int getSelectedIndex( )
public boolean isSelected(int index);
public setSelectedIndex(int index, boolean selected);

最后,就象操作List组件一样,你可以使用一个布尔选项标志数组为设置整个选项组的选择状态。注意,getSelectedFlags( )方法并不返回一个布尔数组,而是修改一个已传入的布尔数组(并作为一种优化技术,返回以整数形式表示的被选取的元素的序号)。该数组的长度至少要等于该列表中元素数目,如果还长一些,其余的数组元素值被置为false。

public int getSelectedFlags(boolean[] selectedArray);
public void setSelectedFlags(boolean[] selectedArray);

对于MULTIPLE型的列表,setSelectedFlags( )用于设置在列表中每个元素的状态。对于EXCLUSIVE型的列表,布尔数组中只有一项可为true;如果没有为true的元素,则第一个元素被选中。如果有两个或者多个元素为true,系统选择第一个为true的元素并选择之。
下面语句创建一个新的空ChoiceGroup对象,其标题为"Selection",类型为EXCLUSIVE:

ChoiceGroup choices = new ChoiceGroup("Method of payment", Choice.EXCLUSIVE);
下面代码把几个新的选项添加到选择组上。

choices.append("Visa", null);
choices.append("Master Card", null);
choices.append("Amex", null);

类似于一个列表中的选项,在一个选项组中的项可以用插入,添加,删除等方法进行编辑。而且,每一个选项被其索引值所参照。如,下面一句可删除最后一项:

choices.delete(2);
特别注意,一旦一个选项组被创建并投入使用,你不可能象操作列表一样,用setCurrent( )方法来显示之。一个选项组是Item的子类,必须放置到表单上去,表单对象是可用方法setCurrent( )显示的。

Form form = new Form("Choose one");
form.append(choices);
Display.setCurrent(form);

图 2展示了一种EXCLUSIVE型的选项组,图3 展示了一种MULTIPLE型的选项组。注意,IMPLICIT值对于ChoiceGroup类是不可用的;如果使用之,将显示一个IllegalArgumentException异常。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)


图2.一种互斥的选项组 图3.有多个选项的选项组
4. DateField

一个DateField对象是一个可编辑的组件,它描述了可以显示在表单对象上的日历中的日期和时间信息。它可以用于显示日期或者时间信息,或者二者皆有。一个DateField对象可以用下面构造器创建:

public DateField(String label, int mode);
public DateField(String label, int mode, TimeZone timeZone);

第一个构造器用于创建有指定的标签和模式的DateField对象。这种模式可以通过提供一个静态字段(DateField.DATE,DateField.TIME或者DateField.DATE_TIME)来指定。DateField.DATE输入模式允许你设置日期信息,DateField.TIME则用于设置时间信息(小时和分钟),DateField.DATE_TIME用于设置日期和时间两种信息。

DateField对象用下列方法来存取加到表单对象上的属性(记住标签属性在抽象类Item 中定义):

public Date getDate( )
public int getInputMode( )
public void setDate(Date date);
public void setInputMode(int mode);

而且,你可以用toString( )方法来输出一个基于字符串的date或者time数据的拷贝。

public String toString( );
作为一个例子,下面代码创建一个对象,标签是"Today’s date",方式为DateField.DATE:

DateField date = new DateField("Today’s date", DateField.DATE);
为了显示一个date域,可先创建一个Form对象,然后使用它的方法append( )添加date域。

Form form = new Form("Date Info");
form.append(date);

展开更多 50%)
分享

猜你喜欢

Java手机软件图形界面API之Form相关API

编程语言 网络编程
Java手机软件图形界面API之Form相关API

Java手机软件图形界面API之screen相关API

编程语言 网络编程
Java手机软件图形界面API之screen相关API

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Java手机软件图形界面API之慨述

编程语言 网络编程
Java手机软件图形界面API之慨述

Java手机软件图形界面API之低级GUI组件

编程语言 网络编程
Java手机软件图形界面API之低级GUI组件

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Java Transaction API概述

编程语言 网络编程
Java Transaction API概述

食品安全相关手机软件推荐

手机软件 应用软件
食品安全相关手机软件推荐

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

关于Blog顶部的滚动导航条代码

关于Blog顶部的滚动导航条代码

Java Applet编程显示图像

Java Applet编程显示图像
下拉加载更多内容 ↓