本文共 2336 字,大约阅读时间需要 7 分钟。
Form类的学习
Form是Screen的子类,它可以包含图像,只读文本,可编辑文本,编辑日标尺,选项组以自定义项目,这些元素者是Item类的子类,亦Form类作为一个容器,可以容纳Item子类的组件。MIDP实现可处理Form的布局,元素的切换各滚动,包含在Form中的任何组件都没有任何滚动机制,而是整齐个内容一直起滚动。
Form的构造方法有两种形式。
Form(String title)//创建一个有标题的没有项目的Form对象
使用上面这个构造方法后要结合append方法或insert方法动态的插入元素
Form(Stirng title, Item[] item)//创建一个有标题有项目元素的Form对象
下面是Form类的构造方法的Demo
package demo;
import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class FormDemo extends MIDlet implements CommandListener
{ private Display display; private List list; private Form form1; private Form form2; private Command exit; private Command back; public FormDemo() { display = Display.getDisplay(this); back = new Command("返回", Command.BACK, 0); exit = new Command("退出", Command.EXIT, 1); list = new List("表单的例子",List.IMPLICIT); list.append("第一个表单", null); list.append("第二个表单", null); list.addCommand(exit); list.setCommandListener(this); form1 = new Form("第一个表单");//表单的第一种构造方法 form1.append("表单一:字符串一"); form1.append("表单一:字符串二"); form1.addCommand(back); form1.setCommandListener(this); StringItem[] str = {new StringItem("表单二:","字符串一"),new StringItem("表单二:","字符串二")}; form2 = new Form("第二个表单", str);//表单的第二个构造方法 form2.addCommand(back); form2.setCommandListener(this); }public void startApp()
{ display.setCurrent(list); }public void pauseApp()
{}
public void destroyApp(boolean condition)
{}
public void commandAction(Command command, Displayable displayable)
{ if(command == List.SELECT_COMMAND) { switch(((List)displayable).getSelectedIndex()) { case 0: display.setCurrent(form1); break; case 1: display.setCurrent(form2); break; } } if(command == back) display.setCurrent(list); if(command == exit) { destroyApp(false); notifyDestroyed(); }}
}
Form中的元素可以使用追加,删除,插入,设置等方法进行编辑,这些元素都通过其索引值引用,方法Form.size()可以返回它所包的元素数量,而Form中元素的索引值的取范围在0到Form.size()-1之间方法.append()用来把一个元素增加到Form中, insert()用来向指定元素插入新元素,delete()方法可以删除一个指定的元素,set()方法可以用新元素替换指定的元素.
一个元素互多只可以放进一个Form对象,如果应用程序打算一个已经属于某个Form的元素放进Form对象,会抛出IllegalStateException异常.
当用户与Form屏幕进行交互,并且元素间进行切换和滚动操作时不会引起应用程序的可见事件,只有当用户改变了Form中可交互元素的状态时,系统会通知应用程序,这个通知是通过调用itemStateChange()方法完成.当然事件听者要实现ItemStateChageListener接口.
Form对象中的布局策略是垂直的,按列(row)进行组织,列与屏幕的宽度,空白,滚动条等是相关的,所有的列在Form中可能会有相同的宽度,在Form的高度依赖于行的数量和单行的高度,而行的高度由放置于些的items所决定,MIDP实现可能变行的高度来适应屏显示。在MIDP2.0规范中,Form中的Item可以设置布局策略,在水平方向各垂直方向结合起来分配元素项,并且对于元素项可以设置其大小
转载地址:http://nymbi.baihongyu.com/