Form与Item
Form是惟一可以在界面上添加组件的类。
Form form = new Form("窗口标题")
从Item继承的子类都可以添加到Form中。(MIDP2.0)
1. StringItem
StringItem("标题", "文本") //显示为: 标题文本
StringItem("标题", "文本", 类型)
类型:Item.PLAIN -- 普通
Item.BUTTON -- 按钮
Item.HYPERLINK --超链接
BUTTON、HYPERLINK类型需要setDefaultCommand(cmd)来设置一个默认的按钮组件,并用setItemCommandListener(MIDlet) <注:不是setCommandListener,因此需要引用ItemCommandListener接口>
2. TextField
TextField("标签", "初始文本", 最大长度, 类型)
类型:同TextBox (TextBox是Screen的子类)
getString()方法取文本框中的值。
3. DateField
日期、时间输入
DateField("标签", 输入模式)
DateField("标签", 输入模式, 时区)
输入模式:DateField.DATE - 只输入日期
DateField.TIME - 只输入时间
DateField.DATE_TIME - 同时输入日期、时间
setDate() 方法 设置输入框的日期、时间
getDate() 方法 取得输入框中的日期、时间
Calendar.get()方法可以取得输入的年、月、日等数值。
4. Gauge
进度条
Gauge("标签", 是否交互模式, 最大值, 初始值)
初始值 >= 0 and <= 最大值,否则IllegalArgumentExceptin异常。
非交互模式:setValue()方法设置Gauge的当前值。
交互模式:可通过左右键指定当前值。
5. ChoiceGroup
与List类似
ChoiceGroup("标签", 类型)
ChoiceGroup("标签", 类型, {"列表项目", ...}, {图标, ..})
类型:Choice.EXCLUSIVE - 单选
Choice.MULTIPLE - 多选
Choice.POPUP - 弹出菜单单选
6. ImageItem
显示一个Image对象。
ImageItem("标签", 图片, 布局, altText)
ImageItem("标签", 图片, 布局, altText, 显示样式)
布局:
ImageItem.LAYOUT_DEFAULT
ImageItem.LAYOUT_LEFT
ImageItem.LAYOUT_RIGHT
ImageItem.LAYOUT_CENTER
ImageItem.LAYOUT_NEWLINE_BEFORE
ImageItem.LAYOUT_NEWLINE_AFTER
altText: 当图片不能显示时,显示此文字
样式:同StringItem有: Item.PLAIN、Item.HYPERLINK、Item.BUTTON
Form还有个append(Image img)方法,可添加简单显示的图像。
7. Spacer
在Item组个间加间隔。
Spacer(最小宽度, 最小高度)
8. CustomItem
用来创建自定义外观的Item组件。
抽象类,必须实现下抽象方法:
protected abstract int getMinContentHeight() //返回最小区域的高度
protected abstract int getMinContentWidth() //返回最小区域的宽度
protected abstract int getPrefContentHeight(int width) //返回最佳区域的宽度
protected abstract int getPrefContentWidth(int height) //返回最佳区域的宽度
protected abstract void paint(Graphics g, int w, int h) //画组件
9. Alert
消息提示框。
public Alert("标题")
public Alert("标题", "提示内容", 图标, 类型)
类型:
AlertType.ALARM - 闹铃信息
AlertType.CONFIRMATION - 确认信息
AlertType.ERROR - 出错信息
AlertType.INFO - 提示信息
AlertType.WARNING - 警告
注:
1. 根据MIDP 规范,永远不要从MIDlet 的构造方法中调用getDisplay()方法,因为此时应用程序管理器能会错误地初始化该方法。
final关键字的作用
final - 最终的
加了final关键字的变量、方法、类不能被继承、覆盖。
一旦初始化后,就不能再变化。
List组件
列表框,Screen的子类。
构造:
List list = new List("标题", 类型) 创建一个空的列表
List list = new List("标题", 类型, 列表字符串数组, 列表项图片数组) 以第3、4个参数为初始列表项目创建一个列表框。
list.size() - 得到列表项目数。
类型:
List.EXCLUSIVE 单选列表框
getSelectedIndex() - 得到第几个列表项被选中。
getString(int index) - 得到第index项的文字。
与Comand和CommandListener一起使用来确认选择。
Command okCmd = new Command("确认", Command.OK, 1);
list.addCommand(okCmd);
list.setCommandListener(this);
List.MULTIPLE 多选列表框
不能用getSeelctedIndex()方法。 要用isSelected(int index)来检测index项是否被选中。
还可以用getSelectedFlags(boolean[] flags),通过布尔类型数组flags来确定各项目的选择情况。
List.IMPLICIT 也是单选列表,提供一个Command对象,可能用这个类型的列表来做为程序菜单。
在commandAction中可直接引用List.SELECT_COMMAND来执行相应的代码:
if (c == List.SELECT_COMMAND) {
}
也可以用setSelectCommand(Command command)方法来指定一个自定义的Command对象。
附:
字符串数组: private String[] strAry = {"一", "二", "三"};
图标:
Image img1 = null;
Image img2 = null;
try {
img1 = Image.createImage("/img1.png");
img2 = Image.createImage("/img2.png");
catch (Exception ioExc) {}
Image[] imgAry = {img1, img2};
for循环:
for (int i = 0; i < iCount; i++) {
}
StringBuffer - 可用来处理字符串的连接。
TextBox组件
Screen的一个子类
构造方法:
textBox = new TextBox("标题文本", "默认显示在文本框中的文字", 最多字符个数, 类型);
类型参数取值:
TextField.ANY
|
任意字符
|
TextField.EMAILADDR
|
Email地址
|
TextField.NUMERIC
|
整数
|
TextField.PHONENUMBER
|
电话号码
|
TextField.URL
|
URL地址
|
TextField.DECIMAL
|
小数
|
OR
|
|
TextField.PASSWORD
|
密码*显示
|
TextField.UNEDITABLE
|
只读
|
TextField.SENSITIVE
|
敏感内容,不使用联想或自动完成
|
TextField.INITIAL_CAPS_WORD
|
自动将每个单词的首字母改成大写
|
TextField.INITIAL_CPAS_SENTENCE
|
将每句话首字母改成大写
|
方法:
getTitle(); 获取文本框标题文本
setTitle(String title); 设置文本框标题
getTicker(); 得到设置给文本框的Ticker对象
setTicker(Ticker ticker); 给文本框设置一个Ticker对象
Ticker对象:
Ticker ticker = new Ticker("这一个滚动显示的文字");
textBox.setTicker(ticker);