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

広告

インターネット上にある画像ファイルを指定してImageIconクラスのオブジェクトを作成する方法を見ていきます。インターネット上にある画像ファイルの指定にはURLで指定します。次のコンストラクタを使用します。

指定された URL からイメージアイコンを生成します。イメージはロード状態を監視するメディアト
ラッカーを使ってプリロードされます。アイコンの説明は初期化され、URL の文字列表現となります。

パラメータ:
  location - イメージの URL

引数には画像ファイルが設置しているインターネット上の場所をURLクラスのオブジェクトとして指定します。URLクラスについては『URLクラス』を参照して下さい。

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

try{
  URL url = new URL("http://www.xxxx.xxx/xxxx.png");
  ImageIcon icon = new ImageIcon(url);
}catch(MalformedURLException e){
  e.printStackTrace();
}

サンプルプログラム

では実際に試してみましょう。今回は画像を読み込んでImageIconクラスのオブジェクトを作成し、そのオブジェクトを使ってラベルを作成してみます。

JImageIconTest3.java

import javax.swing.*;
import java.awt.BorderLayout;
import java.net.URL;
import java.net.MalformedURLException;

public class JImageIconTest3 extends JFrame{

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

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

  JImageIconTest3(){
    URL url = null;

    try{
        url = new URL("https://www.javadrive.jp/tutorial/imageicon/hasami.png");
    }catch(MalformedURLException e){
        e.printStackTrace();
    }

    JLabel label = null;

    if (url != null){
      ImageIcon icon = new ImageIcon(url);
      int iconHeight = icon.getIconHeight();
      int iconWidth = icon.getIconWidth();

      label = new JLabel(icon);
      label.setText(iconWidth + "×" + iconHeight);
    }else{
      label = new JLabel("Not image");
    }

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

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

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

URLを使って画像ファイルを指定する

( Written by Tatsuo Ikura )