</p>
<p align="left">
<a href="index.wml">返回首页</a>
</p>
</card>
</wml>
手机客户端的实现
客户端界面的实现
界面使用了内部类技术,整个界面是一个大类,里面的每一个选项都是一个内部类,并且部署监听器,实现按键事件监听。控件添加如下例所示:
//定义控件
mainList = new List("请选择功能", Choice.IMPLICIT, listitem, null);
mainnokCommand = new Command("确定", Command.OK, 1); String[] listitem = { "查询公交线路", "查询乘坐方案", "按站查公交", "网 络 设 置", "系 统 说 明" };
exitCommand = new Command("退出", Command.EXIT, 1);
cancelCommand = new Command("取消", Command.CANCEL, 1);
//添加控件
mainList.addCommand(exitCommand);
mainList.addCommand(mainnokCommand);
//添加监听器
mainList.setCommandListener(this);
//把该面板显示到屏幕上
display.setCurrent(mainList);
客户端工作原理
下面以线路查询功能为例,详细说明J2ME手机客户端工作原理。
界面控件代码如下:
searchField=new TextField("请输入查询线路","",3,TextField.NUMERIC);
backCommand1=new Command("返回",Command.BACK,1);//返回按钮
okCommand1=new Command("确定",Command.OK,1);//确定按钮
//把控件添加到屏幕上
append(searchField);
addCommand(backCommand1);
addCommand(okCommand1);
//添加监听器
setCommandListener(this);
代码显示效果如图11所示,其中TextField.NUMERIC将用户输入锁定为数字,起到了入口数据控制作用。
界面处理事件代码如下:
public void commandAction(Command c, Displayable d){
//如果按下后退按钮,则
if(c==backCommand1){
display.setCurrent(mainList);
}
//如果按下确定按钮,则调用查询方法
if(c==okCommand1){
SearchAction searchaction=new SearchAction();
//启动线程
Thread t1=new Thread(searchaction);
t1.start();
//将屏幕切换到查询结果界面
display.setCurrent(searchaction);
查询方法基于HTTP原理和JAVA线程技术,查询到需要的数据后就断开连接,节约用户的流量,执行查询时先启动查询线程,判断当前网络是CMWAP还是CMNET,然后连接到服务器接口Servlet ,再将查询数据发送给服务器,然后从服务器那里读取返回数据,读取完毕后关闭连接。关键代码如下:
result1.setText("正在连接...");//给用户提示信息
//如果网络情况是CMNET,则直接进行连接
if(iscmnet.endsWith("true")){
http = (HttpConnection) Connector.open(
"http://127.0.0.1:8080/"
&nbs
首页 上一页 5 6 7 8 9 10 下一页 尾页 8/10/10
免费基于J2ME的公交查询系统的设计与实现(八)由毕业论文网(www.huoyuandh.com)会员上传。