您的位置:首页 > 移动开发 > 微信开发

我的一个小程序的功能完善问题

2017-01-03 05:09 495 查看
下面的程序是一个公交车的查询系统,但是我只是完成了直达车的查询,在实现转车的功能上出现了很大的问题,谁可以帮下我

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

import javax.microedition.rms.*;

import java.io.*;

import java.util.*;

import java.lang.*; 

public class RMS_BusQuery extends MIDlet

{

  private Display display ;

  private TextField startPoint ; //用于输入起始站

  private TextField endPoint ; //用于输入终点站

  //声明窗体

  private Form inputform ;

  private Form resultform;

  private Form detailform;

  //声明按钮

  private Command cmdOk ;

  private Command cmdHelp ;

  private Command cmdExit;

  private Command cmdBack ;

  private Command cmdDetail ;

  String[] useBus1;

  String[] useBus2;

  String lineDetail1;

  String lineDetail2;

  private Alert alert;

  private Ticker ticker ;

  //声明两个向量

  private Vector busFilter1 = new Vector();

  private Vector busFilter2 = new Vector();

  //声明ChoiceGroup

  ChoiceGroup b1;

  ChoiceGroup b2;

  int busNumber1 ; //直达车的数量

  int busNumber2 ; //转乘车的数量

  //定义记录存储的\"字段\"

  String busNo; //车次

  String busType;//车的类型:大巴、中巴、小巴

  String startStation;//起点站

  String endStation;//终点站

  String busLine;//线路

  static final String rsName = "BUS"; //记录存储的名字

  RecordStore rs = null ;

  //构造函数

  public RMS_BusQuery()

  {

    display = Display.getDisplay(this);

    ticker = new Ticker("深圳乘车通 provided by pauline,email:paulineloverose@163.com");

    startPoint = new TextField("上车站","火车站",10,0);

    endPoint = new TextField("下车站","市政府",10,0);

    //定义按钮

    cmdOk = new Command("确定",Command.SCREEN,1);

    cmdHelp = new Command("帮助",Command.SCREEN,2);

    cmdExit = new Command("退出",Command.SCREEN,3);

    cmdBack = new Command("返回",Command.BACK,1);

    cmdDetail = new Command("查看",Command.SCREEN,2);

    //定义输入窗体inputform

    inputform = new Form("请输入:");

    inputform.append(startPoint);

    inputform.append(endPoint);

    inputform.setTicker(ticker);

    inputform.addCommand(cmdOk);

    inputform.addCommand(cmdHelp);

    inputform.addCommand(cmdExit);

    inputform.setCommandListener(new Listener1());

    //定义结果窗体resultform

    resultform = new Form("可乘坐下面的公车到目的地");

    resultform.addCommand(cmdBack);

    resultform.addCommand(cmdDetail);

    resultform.addCommand(cmdExit);

    resultform.setCommandListener(new Listener2());

    //定义详细窗体detailform

    detailform = new Form("此路车经过下列站");

    detailform.addCommand(cmdBack);

    detailform.addCommand(cmdExit);

    detailform.setCommandListener(new Listener3());

    //定义Alert

    Image img = null;

    try{

      img = Image.createImage("/catchbus.png");

    }catch(IOException e) {

      System.out.println("Error when set image");

    }

    alert = new Alert("Welcome",null,img,AlertType.INFO);

    alert.setTimeout(2000);

    //删除旧的记录存储

    try{

      RecordStore.deleteRecordStore(rsName);

    }catch(Exception e){

    }

    //生产一个新的记录存储BUS

    try{

      rs = RecordStore.openRecordStore(rsName,true);

      if(rs.getNumRecords() == 0)

      _addAllRecords(); //添加所有的记录

    }catch(Exception e)

    {

    }

  }

  public void startApp() {

    display.setCurrent(alert,inputform);

  }

  public void pauseApp() {}

  public void destroyApp(boolean unconditional) {}

  //事件监听器listener1

  class Listener1 implements CommandListener {

    public void commandAction(Command c,Displayable d) {

      if (c == cmdExit){

          destroyApp(false);

          notifyDestroyed();

      }

      if(c == cmdOk){

          try{

            int resultformSize = resultform.size();

            if(resultformSize > 0){

            for(int i=0; i<resultformSize; i++)

              resultform.delete(i);

            }

          }catch(Exception e){

          }

          String s1 = startPoint.getString();

          String s2 = endPoint.getString();

          try{

            int lastID = rs.getNextRecordID();

            for (int i = 1; i< lastID; i++) {

              byte[] data = rs.getRecord(i);

              _decode(data);

              int j = busLine.indexOf(s1);

              int k = busLine.indexOf(s2);

              if(j != -1 && k != -1){

                  busFilter1.addElement(busNo+"路"+busType); //有直达车

              }

              else if(k != -1 ){

                  busFilter2.addElement(busNo+"路"+busType); //有转乘车

              }

            }

              busNumber1 = busFilter1.size(); //直达车的数量

              busNumber2 = busFilter2.size(); //转乘车的数量

          if(busNumber1 > 0){

            useBus1 = new String[busNumber1];

            for(int i=0; i<busNumber1; i++){

              useBus1[i] = (String)busFilter1.elementAt(i);

            }

            b1 = new ChoiceGroup("",ChoiceGroup.EXCLUSIVE,useBus1,null);

            resultform.append(b1);

          }

          //没有直达车,但有转乘车

          else if(busNumber2 > 0){

            useBus2 = new String[busNumber2];

            for(int j = 0; j < busNumber2; j++ ){

              useBus2[j] = (String)busFilter2.elementAt(j);

            }

            b2 = new ChoiceGroup("",ChoiceGroup.EXCLUSIVE,useBus2,null);

            resultform.append("对不起,没有直达车,但下面的车次经过你输入的下车站:");

            resultform.append(b2);

          }

          //如果没有直达车,也没转乘车

          else{

            resultform.append("对不起,没有直达车和转乘车经过您输入的起始站");

          }

          }catch(Exception e){

          }

          busFilter1.removeAllElements();

          busFilter2.removeAllElements();

          display.setCurrent(resultform);

      }

    }

  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: