PhoneList.java
上传用户:heyongping
上传日期:2022-07-01
资源大小:95k
文件大小:4k
源码类别:

J2ME

开发平台:

Java

  1. /*
  2.  * 创建于 2009-12-04
  3.  * 实现罗列所有的电话信息
  4.  */
  5. package net.garrey.view;
  6. import java.util.Vector;
  7. import javax.microedition.lcdui.Command;
  8. import javax.microedition.lcdui.CommandListener;
  9. import javax.microedition.lcdui.Displayable;
  10. import javax.microedition.lcdui.Image;
  11. import javax.microedition.lcdui.List;
  12. import net.garrey.model.PhoneItem;
  13. import net.garrey.util.UIController;
  14. /**
  15.  * 作者: 张三
  16.  * 默认列出所有信息并实现对 相关操作的监听
  17.  */
  18. public class PhoneList extends List{
  19.     private UIController controller;
  20.     private Command EXIT_COMMAND;
  21.     private Command ADD_COMMAND;
  22. private Command EDIT_COMMAND;
  23. private Command VIEW_COMMAND;
  24. private Command DELETE_COMMAND;
  25. private Command ABOUT_COMMAND;
  26. //添加查找功能
  27. private Command Find_Command;
  28. private Vector items;
  29. private Image icon;
  30.     /*
  31.      *  带参数的构造方法,实现操作
  32.      */
  33.     public PhoneList(String title,UIController control,Vector vec){
  34.      super(title,List.IMPLICIT);
  35.      System.out.println("cccccccccccccccccccccc:"+"进入PhoneList");
  36.      //load image
  37.      try{
  38.          icon=Image.createImage("/icon/App.png");
  39.      }catch(java.io.IOException e){
  40.          icon=null;
  41.          System.out.println("load image error");
  42.      }
  43.     
  44.      controller=control;
  45.      this.setCommandListener(new PhoneListListener());
  46.      this.items=vec;
  47.     
  48.      EXIT_COMMAND=new Command("退出",Command.EXIT,1);
  49.      VIEW_COMMAND=new Command("查看",Command.ITEM,2);
  50.      ADD_COMMAND=new Command("添加",Command.ITEM,2);
  51.      EDIT_COMMAND=new Command("编辑",Command.ITEM,2);
  52.      DELETE_COMMAND=new Command("删除",Command.ITEM,2);
  53.      ABOUT_COMMAND=new Command("关于",Command.ITEM,2);
  54.      //添加查找功能
  55.      Find_Command=new Command("查找",Command.ITEM,2);
  56.     
  57.      this.addCommand(EXIT_COMMAND);
  58.      this.addCommand(VIEW_COMMAND);
  59.      this.addCommand(ADD_COMMAND);
  60.      this.addCommand(EDIT_COMMAND);
  61.      this.addCommand(DELETE_COMMAND);
  62.      this.addCommand(ABOUT_COMMAND);
  63.     
  64.      this.addCommand(Find_Command);
  65.     
  66.      if(vec!=null&&vec.size()>0){
  67.      PhoneItem phone=null;
  68.      for(int i=0;i<vec.size();i++){
  69.      phone=(PhoneItem)vec.elementAt(i);
  70.      this.append(phone.getName(),icon);
  71.      }
  72.      }
  73.     }
  74.     /*
  75.      * 实现信息的刷新
  76.      */
  77.     public void refresh(Vector vec){
  78.         this.deleteAll();
  79.         this.items=vec;
  80.      if(vec!=null&&vec.size()>0){
  81.      PhoneItem phone=null;
  82.      for(int i=0;i<vec.size();i++){
  83.      phone=(PhoneItem)vec.elementAt(i);
  84.      this.append(phone.getName(),icon);
  85.      }
  86.      }
  87.     }
  88.     /*
  89.      * 新添加一个记录信息
  90.      */
  91.     public void add(PhoneItem phone){
  92.         this.append(phone.getName(),icon);
  93.     }
  94.     
  95.     //监听器
  96.     private class PhoneListListener implements CommandListener{ 
  97.      public void commandAction(Command command, Displayable disp){
  98.      if(command==EXIT_COMMAND){
  99.      controller.handleEvent(UIController.EventID.EVENT_EXIT,null);
  100.              }else if(command==VIEW_COMMAND){
  101.                  int ind=((List)disp).getSelectedIndex();
  102.                  if(ind==-1)
  103.                      return;
  104.      Object[] args={items.elementAt(ind)};
  105.      controller.handleEvent(UIController.EventID.EVENT_VIEW_DETAIL,args);
  106.      }else if(command==ADD_COMMAND){
  107.      System.out.println("准备添加一个记录信息");
  108.      controller.handleEvent(UIController.EventID.EVENT_NEW_RECORD,null);
  109.      }else if(command==EDIT_COMMAND){
  110.                  int ind=((List)disp).getSelectedIndex();
  111.                  if(ind==-1)
  112.                      return;
  113.      Object[] args={items.elementAt(ind)};    
  114.      controller.handleEvent(UIController.EventID.EVENT_EDIT,args);
  115.      }else if(command==DELETE_COMMAND){
  116.                  int ind=((List)disp).getSelectedIndex();
  117.                  if(ind==-1)
  118.                      return;
  119.      Object[] args={items.elementAt(ind)};
  120.      controller.handleEvent(UIController.EventID.EVENT_DELETE,args);
  121.      }else if(command==ABOUT_COMMAND){
  122.          controller.handleEvent(UIController.EventID.EVENT_ABOUT,null);
  123.      }else if(command==Find_Command){
  124.      controller.handleEvent(UIController.EventID.EVENT_FIND, null);
  125.      }
  126.      }
  127.     }
  128. }