title: How do I get to load image in J2ME?
body: <p>I am using TimerTask and ImageLoader class to load n image to an image item. </p>
  
  <pre><code>public class Imageloader implements Runnable{
  
      private ImageItem item=null;
      private String url=null;
  
      /*
       * initializes the imageItem
       */
      public Imageloader(ImageItem item,String url){
              this.item=item;
              this.url=url;
      }
  
  
      private Image getImage(String url) throws IOException {
          item.setLabel(item.getLabel()+12);
          System.out.println("Test 5");
              HttpConnection connection = null;
              DataInputStream inp = null;
              int length;
              byte[] data;
              try {System.out.println("Test 6");
                      connection = (HttpConnection) Connector.open(url);
                      item.setLabel(item.getLabel()+13);
                      connection.getResponseMessage();
                      System.out.println("Test 7");
                      length = (int) connection.getLength();
                      item.setLabel(item.getLabel()+14);
                      System.out.println("Length is "+length);
                      System.out.println("Test 8");
                      data = new byte[length];
                      inp = new DataInputStream(connection.openInputStream());
                      item.setLabel(item.getLabel()+15);
                      System.out.println("Test 9");
                      inp.readFully(data);
                      item.setLabel(item.getLabel()+16);
                      System.out.println("Test 10");
                      return Image.createImage(data, 0, data.length);
              }
              finally {
                  if (connection != null) connection.close();
                  if (inp != null)inp.close();
  
              }
      }
  
  
      public void run() {
          System.out.println("Test 1");
          Image image=null;
          try{
                  if (url!=null){
                      System.out.println("Test 2");
                          image=getImage(url);
                          System.out.println("Test 3");
                          item.setImage(image);
                          item.setLabel(item.getLabel()+17);
                          System.out.println("Test 4");
                  }
                  else{
                      item.setAltText("Map address specified is incorrect");
                  }
          }
          catch(IOException e){
                  item.setAltText("Map cannot be loaded now");
          }
  
      }
  
  }
  
  public class MapTimer extends TimerTask{
  
      DatagramConnection connection=null;
      String message=null;
      Imageloader imageretriever;
      ImageItem item=null;
  
      MapTimer (DatagramConnection connection,String message,ImageItem Img_map ){
          this.connection=connection;
          this.message=message;
          this.item=Img_map;
          item.setLabel(item.getLabel()+1);
          System.out.println("Map is initizlized...");
      }
  
  
      public void run() {
          System.out.println("Map starting...");
           item.setLabel(item.getLabel()+2);
          String serverquery=null;
          try {
               item.setLabel(item.getLabel()+3);
              sendMessage(message);
               item.setLabel(item.getLabel()+4);
              //serverquery=receiveMessage() ;
               item.setLabel(item.getLabel()+5);
              //item.setLabel(" Loading...." );
              //formatmessage(serverquery);
                 String url="http://maps.google.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&amp;zoom=14&amp;size=512x512&amp;maptype=roadmap"+
  "&amp;markers=color:blue|label:S|40.702147,-74.015794&amp;markers=color:green|label:G|40.711614,-74.012318"+
  "&amp;markers=color:red|color:red|label:C|40.718217,-73.998284&amp;sensor=false";
              Imageloader Im=new Imageloader(item,url);
               item.setLabel(item.getLabel()+6);
              (new Thread(Im)).start();
               item.setLabel(item.getLabel()+7);
              System.out.println("server map query is::: "+serverquery);
          } catch (IOException ex) {
              System.out.println("Error2"+ex);
          }
            catch(Exception e){
              System.out.println("Error3"+e);
         }
      }
  
  
       /*
       * Sends a message via UDP to server
       */
      private void sendMessage(String message) throws IOException{
          Datagram packet_send=null;
          if (connection != null){
              byte[] packetsenddata=message.getBytes();
              packet_send = connection.newDatagram(packetsenddata,packetsenddata.length);
              connection.send(packet_send);
              packet_send = null;
          }
      }
  }
  </code></pre>
  
  <p>This is how I set the Timer;</p>
  
  <pre><code> MapTimer maptimer=new MapTimer (connection,mapquery ,Img_map );
                      Timer timer=new Timer();
                      timer.schedule(maptimer, 5000, 100000);
  </code></pre>
  
  <p>It's working fine with the enulator but as I deploy it on my mob,the image is not loading..
  The image label is somewhat like <code>Stopping 234567234567</code> which implies that my timer is running fine. It is not entering the ImageLoader class... How do get to load this image?</p>