URLContent2.java



import java.net.URL;
import java.io.*;
import java.awt.*;
import java.awt.image.*;

/** 指定された URLのオブジェクトを得る URLContent2 */

public class URLContent2 {

  /** 最初に呼び出されるメソッド */

     public static void main( String argv[] ) {

          if( argv.length != 1 ) {

              System.err.println( "Usage: java URLContent urlname" );
              System.exit(0);
          }
          try {
                URL url = new URL( argv[0] );
                Object content = url.getContent();
                if( content instanceof BufferedInputStream ) {

                     BufferedReader br
                       = new BufferedReader( new InputStreamReader(
                                            (InputStream)content )  );
                     String line;
                     while( ( line = br.readLine() ) != null )
                         System.out.println( line );
                     br.close();
                }
                else if( content instanceof ImageProducer ) {

                     URLContent2 uc = new URLContent2();
                     Toolkit tk = Toolkit.getDefaultToolkit();
                     Image image
                          = tk.createImage( (ImageProducer)content );
                     ImageViewer iv = uc.new ImageViewer( image );
                }
          }
          catch( Exception e ){
                System.err.println( e.getMessage() );
                System.exit(-1);
          }
     }

  /** イメージの表示を行う innerクラス */

     class ImageViewer extends ExitableFrame{

       /** 表示するイメージ */

          Image image;

       /** コンストラクタ */

          ImageViewer( Image image ) { 

               super( "Image Viewer" );
               this.image = image;
               setSize( 512, 256 );
               setVisible( true );
          }

       /** 描画メソッド */

          public void paint( Graphics g ) { 

               g.drawImage( image, 0, 0, this );
          }
     }
}