您的位置:首页 > 产品设计 > UI/UE

《Java 手机/PDA 程序设计入门》读书笔记6--LCDAUI高级API之Form与Item

2005-03-17 22:05 567 查看
Form是一个容器类型,在Form上加入各式各样的Item子类,就形成了丰富的画面。

Form等校线:
靠左(Item.LAYOUT_LEFT)
靠中(Item.LAYOUT_CENTER)
靠右(Item.LAYOUT_RIGHT)
setLayout()设定/getLayout获取

每个Item都会有个Label属性,设为null代表不要Label。getLabel()/setLabel()
Item的实际显示大小:
最小尺寸(Minimum size):该组件运作时至少需要的尺寸 setMinimumHeight()/getMinimumWidth() 
期望尺寸(Preferred size):该组件运作时的最佳尺寸 setPreferredSize()/getPreferredSize()
setPreferredSize(50,-1)宽度锁定为50
setPreferredSize(-1,5)高度锁定为5

Item类型
StringItem
ImageItem
ChoiceGroup
TextField
Gauge
DateField

StringItem
用按钮或超级链接显示的一串字
Display display;
Form f=new Form("StringItem test");
StringItem si1=new StringItem("test1:","content1",Item.PLAIN);
f.append(si1); //insert()//delete()//set()
dislplay.setCurrent(f);

构造函数:
三个参数的:Label,content,style-可选择:PLAIN,BUTTON,HYPERLINK
两个参数的:等同于使用PLAIN型的外观。
getAppearanceMode()用于取得StringItem的外观。
getFont()/setFont()用来取得/设定字型。
getText()/setText()用来取得/设定内容

ItemCommandListener(Item与Command)
Item子类至少会有三种东西:
Command数组;
DefaultCommand变量,引用到Command数组中的一个Command;
指向ItemCommandListener的引用。

增删Command数组必须依靠addCommand()/removeCommand()
设定ItemCommandIListener的引用要使用setItemCommandListener()
设定DefaultCommand须使用setDefaultCommand()。

当我们将Item加入Form后,所选的Item内部的Command数组就会变成系统菜单项。
任何菜单项被选定后,实现了ItemCommandListener接口的类中的commandAction()方法就会被调用。

si.addCommand(new Command("1",Command.ITEM,1));
si.addCommand(new Command("2",Command.ITEM,1));
si.setItemCommandListener(this);
……

public void commandAction(Command c,Item i)
{
System.out.println(c.getLabel());
System.out.println(i.getLabel());
}

ImageItem
构造函数:
五参数:Label,影像,等校线,取代文字,外观-PLAIN,BUTTON,HYPERLINK。
四参数:等同外观为PLAIN。

等校线:
ImageItem.LAYOUT_DEFAULT
ImageItem.LAYOUT_LEFT
ImageItem.LAYOUT_RIGHT
ImageItem.LAYOUT_CENTER
ImageItem.LAYOUT_NEWLINE_BEFORE
ImageItem.LAYOUT_NEWLINE_AFTER
setLayout()/getLayout()设定/取得等校线
setImage()/getImage()设定/取得Image对象
setAltText()/getAltText()设定/取得取代文字
getAppearanceMode()取得外观。

Spacer 
专门用来在Formshang加空白间隔的。
Display display;
StringItem si=new StringItem("test","content",Item.PLAIN);
f.append(si);
f.append(new Sacer(50,50));
display.setCurrent(f);

ChoiceGroup
和List类很相似,他们都实现了Choice接口。所不同的是,ChoiceGroup必须依附在Form中才有用。它只有
Choice.EXCLUSIVE Choice.MULTIPLE Choice.POPUP三种类型,不能使用Choice.IMPLICIT。

TextField
类似TextBox类。

Gauge
标尺,进度条。
构造函数:
卷标名,是否可以交互,允许的最大值,初始值

getMaxValue()/setMaxValue()取得/设定最大值
getValue()/setValue()取得/设定当时的初始值
isInteractive()判断是否可以交互
是否可以交互为false时,只能用setValue()设定值
是否可以交互=false并且允许的最大值=Gauge.INDEFINITE可以产生一个没有范围的Gauge.
初始值选择:
Gauge.CONTINUOUS_IDLE
Gauge.CONTINUOUS_RUNNING
Gauge.INCREMENTAL_IDLE
Gauge.INCREMENTAL_UPDATING

Gauge作为进度显示条:
Alert al=new ALert("processing");
……
Gauge g=new Gauge(null,false,10,0);
al.setIndicator(g);
……

DateField
日期时间组件
构造函数:
卷标,输入模式(--DateField.DATE/DateField.TIME/DateField.DATE_TIME),jva.util.TimeZone对象

getInputMode()/setInputMode()来取得/改变输入模式
getDate()/setDate()取得/设定用户所指定的时间

Date对象须和java.util.Calendar类配合才能发挥效用。

当放置于Form组件内部的用户接口组件内部状态改变时,Form组件会对 所有经由setItemStateListener()向它注册的类中的itemStateChanged()方法 发出状态改变的消息。ItemStateListener只在用户交互中组件状态真的被改变时,其itemStateChanged()方法才被调用。如果想自动调用itemStateChanged()需要这样:在某个组件状态改变后,调用Item的notifyStateChanged(),程序就能自行调用itemStateChanged(),并立刻返回到原调用点。而无须等待itemStateChanged()结束才返回。

如若Form中同时有CommandListener和ItemStateListener时,itemStateCHanged()比commandAction()先被调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐