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() {
// 本当は画像を動かすつもり
}
}
戻る