ファイル名を指定してImageIconオブジェクトを作成する

広告

まずローカル環境にある画像ファイルを指定してImageIconクラスのオブジェクトを作成する方法を見ていきます。次のコンストラクタを使用します。

指定されたファイルからイメージアイコンを生成します。イメージはロード状態を監視するメディア
トラッカーを使ってプリロードされます。指定する文字列はファイル名またはファイルパスです。パ
スを指定するときは、区切り文字としてインターネット標準のスラッシュ (/) を使います。文字列
は URL に変換され、スラッシュはすべてのシステムで使用されます。たとえば次のように指定しま
す。

    new ImageIcon("images/myImage.gif") 

説明は、filename 文字列に初期化されます。

パラメータ:
  filename - ファイル名またはパスを指定する文字列

引数には画像ファイル名を指定します。実行しているプログラムと異なるディレクトリに画像ファイルがある場合には、相対パスで指定して下さい。この場合Windows環境であっても「¥」は使わずに「/」を使ってパスの指定を行います。

またImageIconクラスを使用する場合には自動的にMediaTrackerが使用されて画像の読み込みが完了するまで処理が止まります。その為、Imageクラスを使う場合のように別途画像読み込みが完了するのを監視する必要はありませんが、あまり大きい画像を使用する場合にはImageIconクラスは適していない場合があります。

実際には次のように使用します。

ImageIcon icon = new ImageIcon("./img/sample.png");

上記では実行しているプログラムと同じディレクトリ内に「img」と言うディレクトリがあり、その「img」ディレクトリ内に含まれている「sample.png」と言う画像ファイルを指定してImageIconクラスのオブジェクトを作成しています。

サンプルプログラム

では実際に試してみましょう。今回はJLabelクラスのオブジェクトを作成する場合にImageIconクラスのオブジェクトを使ってラベルに画像を表示させてみます。

JImageIconTest1.java

import javax.swing.*;
import java.awt.BorderLayout;

public class JImageIconTest1 extends JFrame{

  public static void main(String[] args){
    JImageIconTest1 frame = new JImageIconTest1();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 150, 150);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  JImageIconTest1(){
    ImageIcon icon = new ImageIcon("./hasami.png");
    JLabel label = new JLabel(icon);

    JPanel p = new JPanel();
    p.add(label);

    getContentPane().add(p, BorderLayout.CENTER);
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

ファイル名を指定してImageIconクラスのオブジェクトを作成

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)