当前位置:首页 > 全部子站 > IT > 思科认证

技巧心得:J2ME学习札记2

来源:长理培训发布时间:2017-12-13 16:00:13

 百度广告

Command对象
在前面我们其实已经使用过Command对象了。J2ME的事件系统比较特殊,你必须首先定义一系列的命令,然后注册到容器对象中,例如(Form、Alert、List、TextBox),再设定命令监听者
package fancy.test;
import javax.microedition.lcdui.*;
{
private Form props;
private Command cancelCommand = new Command("CANCEL", Command.CANCEL, 1);
private Command helpCommand = new Command("HELP", Command.HELP, 1);
private Command okCommand = new Command("OK", Command.OK, 1);
private Command stopCommand = new Command("STOP", Command.STOP, 1);
{
}
{
props.append("Hello World!"n");
props.addCommand(cancelCommand);
props.addCommand(helpCommand);
props.addCommand(okCommand);
props.addCommand(stopCommand);
display.setCurrent(props);
public void showScreen(String cmd)
Form form=new Form("show cmd");
form.addCommand(exitCommand);
display.setCurrent(form);
public void commandAction(Command c, Displayable s) 
if (c == exitCommand) 
destroyApp(false);
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
}
{
public void pauseApp() 
display.setCurrent(null);
}
在上面的程序(CMD.java)中定义了八个命令。如果commandAction()方法接到这八个命令,多半是调用showScreen()方法,将这几个命令输出。showScreen()方法会产生一个新的容器对象(Form),作为当前的屏幕,并把截获的命令显示在屏幕中。
TextBox文本框对象
TextBox是一个容器类型的对象(和Form的性质一样)。用法如下所示:
import javax.microedition.midlet.*;
public class ShowTextBox extends MIDlet implements CommandListener 
private Display display;
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
{
}
{
//String str="hello world";
//the follow code is wrong:
txtBox = new TextBox("Text Box",null,200,0);
txtBox.setCommandListener(this);
}
{
{
notifyDestroyed();
}
{
public void pauseApp() 
display.setCurrent(null);
}
请注意TextBox类的构造函数,第一个参数实际上是窗口的名称(因为TextBox是一个容器,可能是当前屏幕的显示对象),第二个参数是缺省值,第三个参数是输入字符的总长度。如果你设置了文本框的缺省值,那么第三个参数必须是缺省字符的长度。如果第三个参数的值和缺省字符的长度不一样,那么程序运行不成功(编译可以通过)。如果你将第二个参数置为null值,那么第三个参数可以任意设。
TextField文本域对象
TextField和TextBox有点相似,不过TextBox是多行的,而TextField是单行的。而且TextBox是容器类型的对象,但是TextField是项目类型的对象,只能够被容器包含,不能够单独显示。
package fancy.test;
import javax.microedition.lcdui.*;
{
private Form props;
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
{
}
{
props.append("Hello World!"n");
props.append(txtField);
props.setCommandListener(this);
}
{
{
notifyDestroyed();
}
{
public void pauseApp() 
display.setCurrent(null);
}
请注意startApp()方法,我们使用Form对象作为当前屏幕的显示对象,而将TextField对象作为Form的一个子项目显示。下面来介绍TextField类的构造函数,第一个参数是文本域的名称,第二个参数是缺省值,第三个参数是长度,第四个参数是文本域的类型,可选的值有: TextFi
eld. NUMERIC等等。构造好TextField对象之后,调用Form的append()方法将它添加到Form对
DateField对象
DateField对象和TextField对象一样同属于项目类型的对象,不能够单独显示,必须作为容器对象的子项目显示。DateField对象的作用是显示一个日期,它和Windows控制面板中的时间和日期设置程序有点近似。DateField对象的用法如下所示:
import javax.microedition.midlet.*;

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部