title: JavaFX Application freeze some seconds when load many images although of loading them in background Thread
body: <p>i made a class as a loader for loading images in background Thread , to add them inside the JavaFX Application , </p>
  
  <p>my problem is , although of this class works as a Task , but it cause the JavaFX Apllication freeze during images loading , and work back again normally after it finish,</p>
  
  <p>The Loader Class Code :</p>
  
  <pre><code>import javafx.concurrent.Service;
  import javafx.concurrent.Task;
  import javafx.scene.image.Image;
  import javafx.scene.image.ImageView;
  
  public class Loader{
      private String type     = "";
      private String url      = "";
      private ImageView image = new ImageView();
  
      private class LoaderService extends Service{
          @Override
          protected Task createTask() {
              return new LoaderTask();
          }
      }
  
      private class LoaderTask extends Task{
          @Override
          protected Object call() throws Exception {
              new LoaderClass();
  
              return null;
          }
      }
  
      private String getType(){
          return this.type;
      }
  
      private String getUrl(){
          return this.url;
      }
  
      public Loader type(String type){
          this.type = type;
          return this;
      }
  
      public Loader url(String url){
          this.url = url;
          return this;
      }
  
      public ImageView getImage(){
          return this.image;
      }
  
      public Loader build(){
          new LoaderTask().run();
          return this;
      }
  
      private class LoaderClass{
          public LoaderClass(){
              switch(getType()){
                  case "image":
                      this.loadImage(getUrl());
                  break;
              }
          }
  
          private void loadImage(String url){
              try{
                  getImage().setImage(new Image(url));
              }catch(Exception ex){
                  System.out.println("Ex"+ex.getMessage());
              }
          }
      }
  }
  </code></pre>
  
  <p>Example of calling the loader for images from external class to add them inside the main JavaFX Window :</p>
  
  <pre><code>StackPane Pane = new StackPane();
  
  ImageView Icon1 = new NinjaLoader()
                                      .type("image")
                                      .url("http://localhost/images/1.png")
                                      .build()
                                      .getImage();
  
  ImageView Icon2 = new NinjaLoader()
                                      .type("image")
                                      .url("http://localhost/images/2.png")
                                      .build()
                                      .getImage();
  
  ImageView Icon3 = new NinjaLoader()
                                      .type("image")
                                      .url("http://localhost/images/3.png")
                                      .build()
                                      .getImage();
  
  ImageView Icon4 = new NinjaLoader()
                                      .type("image")
                                      .url("http://localhost/images/4.png")
                                      .build()
                                      .getImage();
  Pane.getChildren().addAll(Icon1,Icon2,Icon3,Icon4);
  </code></pre>
  
  <p>so what is the wrong in my code which cause these freezes ?</p>
  
  <p>Thank you ,</p>