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()先被调用。
《Java 手机/PDA 程序设计入门》读书笔记6--LCDAUI高级API之Form与Item
最新推荐文章于 2013-07-04 11:59:50 发布