J2ME学习札记2

嘿呀灬诶呦喂丶

嘿呀灬诶呦喂丶

2016-02-19 14:03

下面是个超简单的J2ME学习札记2教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

  Command对象
  发信站: 北大未名站 (2001年10月20日20:33:56 星期六) , 站内信件
   在前面我们其实已经使用过Command对象了。J2ME的事件系统比较非凡,你必须首先定义一系列的命令,然后注册到容器对象中,例如(Form、Alert、List、TextBox),再设定命令监听者
  ,编写好commandAction()方法即可。当系统发送某个命令,便由commandAction()方法进行统筹处理。下面的程序演示了如何定义多个命令以及如何编写commandAction()方法。
  package fancy.test;
  
  import Javax.microedition.midlet.*;
  import javax.microedition.lcdui.*;
  
  public class CMD extends MIDlet implements CommandListener
  {
  private Display display;
  private Form props;
  
   private Command backCommand = new Command("BACK", Command.BACK, 2);
   private Command cancelCommand = new Command("CANCEL", Command.CANCEL, 1);
   private Command exitCommand = new Command("EXIT", Command.EXIT, 1);
   private Command helpCommand = new Command("HELP", Command.HELP, 1);
   private Command itemCommand = new Command("ITEM", Command.ITEM, 1);
   private Command okCommand = new Command("OK", Command.OK, 1);
   private Command screenCommand = new Command("SCREEN", Command.SCREEN, 1);
   private Command stopCommand = new Command("STOP", Command.STOP, 1);
  
  
  public CMD()
  {
  display = Display.getDisplay(this);
  }
  
  public void startApp()
  {
  props = new Form("Hello World");
  props.append("Hello World!");
  
  props.addCommand(backCommand);
  props.addCommand(cancelCommand);
  props.addCommand(exitCommand);
  props.addCommand(helpCommand);
  props.addCommand(itemCommand);
  props.addCommand(okCommand);
  props.addCommand(screenCommand);
  props.addCommand(stopCommand);
  props.setCommandListener(this);
  display.setCurrent(props);
  }
  
  public void showScreen(String cmd)
  {
  Form form=new Form("show cmd");
  form.append(cmd);
  form.addCommand(exitCommand);
  form.setCommandListener(this);
  display.setCurrent(form);
  
  }
  
  public void commandAction(Command c, Displayable s)
  {
  if (c == exitCommand)
  {
  destroyApp(false);
   notifyDestroyed();
  }
  else if(c==helpCommand)
  {
  showScreen("help");
  }
  else if(c==backCommand)
  {
  showScreen("back");
  }
  else if(c==cancelCommand)
  {
  showScreen("cancel");
  }
  else if(c==itemCommand)
  {
  showScreen("item");
  }
  else if(c==okCommand)
  {
  showScreen("ok");
  }
  else if(c==screenCommand)
  {
  showScreen("screen");
  }
  if(c==stopCommand)
  {
  showScreen("stop");
  }
  
  
  }
  
  public void destroyApp(boolean unconditional)
  {
  }
  
  public void pauseApp()
  {
  display.setCurrent(null);
  props = null;
  }
  
  }
   在上面的程序(CMD.java)中定义了八个命令。假如commandAction()方法接到这八个命令,多半是调用showScreen()方法,将这几个命令输出。showScreen()方法会产生一个新的容器对象(Form),作为当前的屏幕,并把截获的命令显示在屏幕中。
   CMD.java的运行效果如下2图所示(当屏幕出现Hello World字样的时候,你需要按下退出键,命令菜单就会出现了,你可以依次执行各个命令)。
  
  
  TextBox文本框对象
  发信站: 北大未名站 (2001年10月20日20:36:34 星期六) , 站内信件
  
   TextBox是一个容器类型的对象(和Form的性质一样)。用法如下所示:
  
  package fancy.test;
  
  import javax.microedition.midlet.*;
  import javax.microedition.lcdui.*;
  
  public class ShowTextBox extends MIDlet implements CommandListener
  {
  private Display display;
  private TextBox txtBox;
  
  private Command exitCommand = new Command("Exit", Command.EXIT, 1);
  
  public ShowTextBox()
  {
  display = Display.getDisplay(this);
  }
  
  public void startApp()
  {
  //or :
  //String str="hello world";
  //txtBox = new TextBox("Text Box",str,str.length(),0);
  //the follow code is wrong:
  //txtBox = new TextBox("Text Box",str,any number here,0);
  
  txtBox = new TextBox("Text Box",null,200,0);
  
  txtBox.addCommand(exitCommand);
  txtBox.setCommandListener(this);
  display.setCurrent(txtBox);
  }
  
  public void commandAction(Command c, Displayable s)
  {
  if (c == exitCommand)
  {
  destroyApp(false);
   notifyDestroyed();
  }
  }
  
  public void destroyApp(boolean unconditional)
  {
  }
  
  public void pauseApp()
  {
  display.setCurrent(null);
  txtBox = null;
  }
  
  }
   请注重TextBox类的构造函数,第一个参数实际上是窗口的名称(因为TextBox是一个容器,可能是当前屏幕的显示对象),第二个参数是缺省值,第三个参数是输入字符的总长度。假如你设置了文本框的缺省值,那么第三个参数必须是缺省字符的长度。假如第三个参数的值和缺省字符的长度不一样,那么程序运行不成功(编译可以通过)。假如你将第二个参数置为null值,那么第三个参数可以任意设。
   ShowTextBox.java的运行效果如下图所示:
  
  TextField文本域对象
  发信站: 北大未名站 (2001年10月20日20:37:59 星期六) , 站内信件
  
   TextField和TextBox有点相似,不过TextBox是多行的,而TextField是单行的。而且TextBox是容器类型的对象,但是TextField是项目类型的对象,只能够被容器包含,不能够单独显示。
  TextField文本域对象的用法如下所示:
  package fancy.test;
  
  import javax.microedition.midlet.*;
  import javax.microedition.lcdui.*;
  
  public class ShowTextField extends MIDlet implements CommandListener
  {
  private Display display;
  private Form props;
  private TextField txtField;
  
  private Command exitCommand = new Command("Exit", Command.EXIT, 1);
  
  public ShowTextField()
  {
  display = Display.getDisplay(this);
  }
  
  public void startApp()
  {
  props = new Form("Hello World");
  props.append("Hello World!");
  txtField=new TextField("EMail:", "", 15,TextField.EMAILADDR);
  props.append(txtField);
  props.addCommand(exitCommand);
  props.setCommandListener(this);
  display.setCurrent(props);
  }
  
  public void commandAction(Command c, Displayable s)
  {
  if (c == exitCommand)
  {
  destroyApp(false);
   notifyDestroyed();
  }
  }
  
  public void destroyApp(boolean unconditional)
  {
  }
  
  public void pauseApp()
  {
  display.setCurrent(null);
  props = null;
  }
  
  }
   请注重startApp()方法,我们使用Form对象作为当前屏幕的显示对象,而将TextField对象作为Form的一个子项目显示。下面来介绍TextField类的构造函数,第一个参数是文本域的名称,第二个参数是缺省值,第三个参数是长度,第四个参数是文本域的类型,可选的值有: TextFi
  eld.PASSWord、TextField.EMAILADDR、TextField.PHONENUMBER、TextField. URL、TextFi
  eld. NUMERIC等等。构造好TextField对象之后,调用Form的append()方法将它添加到Form对
  象的子项目中。ShowTextField.java程序的运行效果如下图所示:
  
  DateField对象
  发信站: 北大未名站 (2001年10月20日20:39:14 星期六) , 站内信件
  
   DateField对象和TextField对象一样同属于项目类型的对象,不能够单独显示,必须作为容器对象的子项目显示。DateField对象的作用是显示一个日期,它和Windows控制面板中的时间和日期设置程序有点近似。DateField对象的用法如下所示:
  package fancy.test;
  
  import javax.microedition.midlet.*;
  import javax.microeditio
展开更多 50%)
分享

猜你喜欢

J2ME学习札记2

编程语言 网络编程
J2ME学习札记2

J2ME学习札记3

编程语言 网络编程
J2ME学习札记3

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

J2ME学习札记1

编程语言 网络编程
J2ME学习札记1

J2ME学习系列之如何将J2ME与XML集成

编程语言 网络编程
J2ME学习系列之如何将J2ME与XML集成

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

J2ME中文教程之J2ME技术概述

编程语言 网络编程
J2ME中文教程之J2ME技术概述

学习在J2ME中使用代码

编程语言 网络编程
学习在J2ME中使用代码

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

5.4 用数据绑定实现高效率动态网页

5.4 用数据绑定实现高效率动态网页

在PowerPoint 2007中无法输入中文

在PowerPoint 2007中无法输入中文
下拉加载更多内容 ↓