package com;
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Gauge;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class WLcf extends MIDlet implements CommandListener {
private Display disa;
private Form forma;
private TextField tfd1,tfd2,tfd3;
private Command exitCmd,nextCmd,backCmd;
private Alert al;
private TextBox tbx;
String stra;
private boolean condition=false;
public WLcf() {
this.ont();
al = new Alert("提示信息");
al.setTimeout(Alert.FOREVER);
al.setString("移动查询初级版本");
disa=Display.getDisplay(this);
Gauge gauge = new Gauge(null, false, Gauge.INDEFINITE, Gauge.INCREMENTAL_IDLE);
al.setIndicator(gauge);
disa=Display.getDisplay(this);
disa.setCurrent(al,forma);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
this.condition=false;
threadm th=new threadm(this);
th.start();
}
public void commandAction(Command cmd, Displayable dis) {
if(cmd==exitCmd){
try {
destroyApp(false);
notifyDestroyed();
} catch (MIDletStateChangeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(cmd==nextCmd){
this.two();
synchronized(this){
this.condition=true;
notify();
}
disa.setCurrent(this.tbx);
}
if(cmd==backCmd){
disa.setCurrent(forma);
}
}
public void ont(){
forma =new Form("");
tfd1=new TextField("city", "", 200, 0);
tfd2=new TextField("start", "", 200, 0);
tfd3=new TextField("end", "", 200, 0);
exitCmd=new Command("exit",Command.EXIT,1);
nextCmd=new Command("next",Command.SCREEN,1);
forma.addCommand(exitCmd);
forma.addCommand(nextCmd);
forma.append(tfd1);
forma.append(tfd2);
forma.append(tfd3);
forma.setCommandListener(this);
}
public void two(){
tbx=new TextBox("您的信息", "", 89939, 0);
backCmd=new Command("back",Command.BACK,1);
tbx.addCommand(backCmd);
tbx.setCommandListener(this);
}
public String neirong(){
String url="http://www.google.com";
try {
HttpConnection conn=(HttpConnection)Connector.open(url);
InputStream istr=(InputStream)conn.openInputStream();
int ch;
StringBuffer sbf=new StringBuffer();
while((ch=istr.read())!=-1){
sbf.append((char)ch);
stra=sbf.toString();
}
istr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return stra;
}
class threadm extends Thread{
MIDlet parents;
public threadm(MIDlet parents){
this.parents=parents;
}
public void run(){
while(true){
synchronized(parents){
while(!condition){
try {
parents.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
condition=false;
}
neirong();//初始化这个方法返回stra的值
tbx.setString(stra);//给textBox加内容是应该在这里加
}
}
}
}
分享到:
相关推荐
多线程编程——实战篇
多线程编程——multithreading programming it is clear and easy and there is the detail comment for the key concepts
多线程编程:信号量使用。 打包文件包含两个文件:c文件源代码、Makefile文件,运行环境在Ubuntu14.04下,使用自带的gcc编译器,同学们只需将文件夹复制到某一目录下之后在终端执行:1.“make”生成“test”可执行...
非常好的MFC多线程同步代码,附带代码说明!非常适合刚接触多线程程序员。。
非常好的MFC多线程代码,附带代码说明!非常适合刚接触多线程程序员。。
多线程编程:互斥锁使用。 打包文件包含两个文件:c文件源代码、Makefile文件,运行环境在Ubuntu14.04下,使用自带的gcc编译器,同学们只需将文件夹复制到某一目录下之后在终端执行:1.“make”生成“test”可执行...
线程安全队列的接口文件如下: #include template class threadsafe_queue { public: threadsafe_queue(); threadsafe_queue(const threadsafe_queue&); threadsafe_queue& operator=(const threadsafe_queue&...
多线程编程:条件变量使用。 打包文件包含两个文件:c文件源代码、Makefile文件,运行环境在Ubuntu14.04下,使用自带的gcc编译器,同学们只需将文件夹复制到某一目录下之后在终端执行:1.“make”生成“test”可执行...
线程编程——多个参数传入线程中。 打包文件包含两个文件:c文件源代码、Makefile文件,运行环境在Ubuntu14.04下,使用自带的gcc编译器,同学们只需将文件夹复制到某一目录下之后在终端执行:1.“make”生成“test”...
java高级编程——对多线程,输入输出流,网络编程这三大块的深入讲解。
.
.
多线程编程之三——线程间通讯
多线程编程之二——MFC中的多线程开发
多线程编程之四——线程的同步
多线程编程之一——问题提出 2 一、问题的提出 2 二、多线程概述 2 三、Win32 API对多线程编程的支持 3 四、Win32 API多线程编程例程 4 例程1 MultiThread1 4 例程2 MultiThread2 5 例程3 MultiThread3 6 例程4 ...
多线程编程之二——MFC中的多线开发
多线程编程之一——问题提出
多线程编程之二——MFC中的多线开