ImageIOクラスを使って、画像(ファイル、URL)を表示する

戻る



::::::::::::::
ImageRenderingTest.java
::::::::::::::
import java.awt.*;
import java.awt.event.*;
import java.awt.dnd.*;
import java.awt.geom.*;
import java.awt.image.*;

import javax.imageio.*;

import javax.swing.event.*;
import javax.swing.*;
import javax.swing.border.*;

import java.io.*;

/**
* $Id: ImageIO.html,v 1.1 2009/06/22 16:11:46 kishi Exp kishi $
* @author KISHI Yasuhiro
*/

public class ImageRenderingTest extends JFrame {

    public ImageRenderingTest () {
        super( "画像を読取表示するプロトタイプ" );
        setLayout( new FlowLayout() );

        try {
            // 外観を設定します
            UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.WindowsLookAndFeel" );
            // 外観を変更します
            SwingUtilities.updateComponentTreeUI( this );
        } catch ( Exception e ) {
            e.printStackTrace();
            System.exit( -1 );
        }

        setBounds( 0, 0, 640, 480 );

        //---------------------------------------------------------------
        // 画像をローカルファイルから読み込む
        //---------------------------------------------------------------
        BufferedImage image = null;
        try {
            image = ImageIO.read( new File( "gootop_logo.gif" ) );

        } catch ( IOException ex ) {
            ex.printStackTrace();
        }

        ImageIcon icon = new ImageIcon( image );
        JLabel label = new JLabel( icon );

        //---------------------------------------------------------------
        // パネルを追加
        //---------------------------------------------------------------
        MyPanel panel = new MyPanel();
        panel.setPreferredSize( new Dimension( 480, 320 ) );

        Container container = getContentPane();
        container.add( label );
        container.add( panel );

        setVisible( true );

        addWindowListener( new WindowAdapter() {
                               public void windowClosing( WindowEvent ev ) {
                                   dispose();
                                   System.exit( 0 );
                               }
                           }
                         );

    }

    /**
    * GUIを作成し表示する
    */
    private static void createAndShowGUI() {
        JFrame frame = new ImageRenderingTest();
    }

    public static void main( String[] args ) {

        javax.swing.SwingUtilities.invokeLater( new Runnable() {
                                                    public void run() {
                                                        createAndShowGUI();
                                                    }
                                                }
                                              );

    }

}

::::::::::::::
MyPanel.java
::::::::::::::
import java.awt.*;
import java.awt.event.*;
import java.awt.dnd.*;
import java.awt.geom.*;
import java.awt.image.*;

import javax.imageio.*;

import javax.swing.event.*;
import javax.swing.*;
import javax.swing.border.*;

import java.io.*;
import java.net.*;

/**
* $Id: ImageIO.html,v 1.1 2009/06/22 16:11:46 kishi Exp kishi $
* @author KISHI Yasuhiro
*/

public class MyPanel extends JPanel implements Runnable {

    private BufferedImage image = null;
    private Color bgColor = null;

    public MyPanel() {
        super();
        bgColor = new Color( 0xcc, 0xcc, 0xff );

        System.out.println( "画像URLを読み取り中・・・" );
        image = null;
        try {
            image = ImageIO.read( new URL( "http://img.yahoo.co.jp/i/jp/my/top7.gif" ) );

        } catch ( IOException ex ) {
            ex.printStackTrace();
        }
        System.out.println( "完了しました!" );

    }

    public void paint( Graphics g ) {

        int width = getWidth();
        int height = getHeight();

        g.setColor( bgColor );
        // 背景色でこのコンポーネントを全て塗りつぶす
        g.fillRect( 0 , 0 , width , height );

        Graphics2D g2 = ( Graphics2D ) g;

        g2.drawImage( image, width / 2, height / 2, this );

    }

    public void run() {

        // 本当は画像を動かすつもり
    }


}
戻る inserted by FC2 system