|
阅读:962回复:0
采用java,怎么显示地图以及执行地图的相关操作?
<P>请问知道一个图片的URL后,如何将写个applet,让它在applet中显示出来,速度要快。我以前用的是:<BR>applet访问servlet,由servlet根据url取得图片的ImageIcon对象后,返回给applet,在applet中再得到Image对象,<BR>并再paint方法中利用drawImage方法画出。<BR><BR>servlet中的主要代码如下:<BR> //根据URL取图片 <BR> public ImageIcon getImageIcon2(String urlStr)<BR> {<BR> try<BR> {<BR> System.out.println("getIcon Begin");<BR> ImageIcon toII=new ImageIcon(new URL(urlStr));<BR> System.out.println("getIcon End");<BR> <BR> return toII;<BR> }<BR> catch(Exception e)<BR> {<BR> System.out.println("getIcon error");<BR> return null;<BR> }<BR> }<BR><BR>//在servlet中发送ImageIcon对象的方法<BR> public void doPost(HttpServletRequest request,HttpServletResponse response)<BR> throws ServletException,IOException<BR> {<BR> ObjectInputStream in=null;<BR> ObjectOutputStream out=null;<BR> <BR> ImageIcon ii=null;<BR><BR> try<BR> {<BR> in=new ObjectInputStream(request.getInputStream());<BR> out=new ObjectOutputStream(response.getOutputStream());<BR> <BR> <BR> ii=getImageIcon2("http://xxxx/1.jpg"); //参数是一个图片的url,位于其它机器上<BR> //发送图像 <BR> out.writeObject(ii);<BR> }<BR> catch(Exception e)<BR> . . .. . <BR><BR>Applet中访问servlet的主要代码如下:<BR>try {<BR> URL url1 = new URL(IMGSERVERADDR); //参数是被访问的servlet的url<BR> conn = url1.openConnection();<BR> //使浏览器不缓存这个URL<BR> conn.setUseCaches(false);<BR> //允许接收服务器发来的数据<BR> conn.setDoInput(true);<BR> //允许发送数据到服务器<BR> conn.setDoOutput(true);<BR><BR> //发送请求地图的字符串<BR> objOutputS = new ObjectOutputStream(conn.getOutputStream());<BR> objOutputS.writeObject(str); <BR><BR> //启动ExecuteRequest线程以执行接收并画出图像的任务<BR> ExecuteRequest0809 exeR = new ExecuteRequest0809();<BR> Thread exec = new Thread(exeR);<BR> exec.start();<BR> .. .. ..<BR><BR>我在windows的IE中输入图片的url后,很快就可以得到图片,而我的程序得到图片的时间很长,<BR>是前者的8~10倍。请问,有什么方法,可以让取图的速度快些呢?如果能够边取边显示就好了,<BR>及先显示到来的数据,刷新显示,这样就感觉上快些,请大家多多帮忙!!!不胜感激!! </P>
|
|