@Override protected void done(){
  try {
    ImageIcon loadedIcon=get();
    if (loadedIcon == null) {
      image.setLoadingError();
    }
 else {
      image.setImage(loadedIcon.getImage());
    }
    image.setLoadingDone();
  }
 catch (  InterruptedException|ExecutionException ex) {
    LOGGER.warning("Unexpected error when loading emoticon: " + ex);
  }
}

@ Override protected void done ( ) { try { ImageIcon loadedIcon = get ( ) ; if ( loadedIcon == null ) { image . setLoadingError ( ) ; } else { image . setImage ( loadedIcon . getImage ( ) ) ; } image . setLoadingDone ( ) ; } catch ( InterruptedException | ExecutionException ex ) { LOGGER . warning ( "Unexpected error when loading emoticon: " + ex ) ; } }
the image should be done loading , replace the defaulticon with the actual loaded icon and tell the user that it ' s loaded .
