服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

在组件(components)之间共享ticker


  ticker在screen类中被定义为一个域(field),它可以被连接到任何screen类的子集中。在下面的例子中,我们将展示如何将ticker连接到列表(list)和alert对象中。
  
  注意:以下例子基于midp和cldc 1.0.3
  
  源代码:
  /*--------------------------------------------------
  * tickerexample.java
  *-------------------------------------------------*/
  import javax.microedition.midlet.*;
  import javax.microedition.lcdui.*;
  
  public class tickerexample extends midlet implements commandlistener
  {
  private display display;  // 对显示对象的引用reference to display object
  private list lsproducts;  // 主产品列表
  private alert alhelp;   // 显现文字和图像的警告板
  private ticker tksale;   // 对现在销售的提示
  private command cmexit;  // 退出命令
  public tickerexample()
  {
  display = display.getdisplay(this);
  
  cmexit = new command("exit", command.screen, 1);
  
  tksale = new ticker("current sale: bob's pretty good laptop only $529.00");
  
  lsproducts = new list("products", choice.implicit);
  lsproducts.append("laptop", null);
  lsproducts.append("printer", null);
  lsproducts.append("help", null);
  lsproducts.addcommand(cmexit);
  lsproducts.setcommandlistener(this);
  lsproducts.setticker(tksale);
  }
  
  public void startapp()
  {
  display.setcurrent(lsproducts);
  }
  
  public void pauseapp()
  {  }
  
  public void destroyapp(boolean unconditional)
  {  }
  
  public void showalert()
  {
  try
  {
  // create an image
  image im = image.createimage("/help.png");
  
  // create alert, add text and image, no sound
  alhelp = new alert("help information",
  "bob's pretty good products...so much to choose from!",
  im, null);
  alhelp.settimeout(alert.forever);
  alhelp.setticker(tksale);
  }
  catch(exception e)
  {
  system.out.println("unable to read png image.");
  }
  
  // display the alert. once dismissed, return to product list
  display.setcurrent(alhelp, lsproducts);
  
  }
  
  public void commandaction(command c, displayable s)
  {
  
  if (c == list.select_command)
  {
  switch (lsproducts.getselectedindex())
  {
  case 0:
  system.out.println("laptop selected");
  break;
  
  case 1:
  system.out.println("printer selected");
  break;
  
  case 2:
  showalert();
  break;
  }
  }
  else if (c == cmexit)
  {
  destroyapp(true);
  notifydestroyed();
  }
  }
  }

扫描关注微信公众号