URLを表す文字列を指定してURLオブジェクトを作成する

広告

まずURLを表す文字列を引数に指定してURLクラスのオブジェクトを作成する方法を見ていきます。次のコンストラクタを使用します。

String 表現から URL オブジェクトを生成します。

このコンストラクタは、1 番目の引数に null を指定して、引数が 2 つのコンストラクタを呼び出
すことと同じです。

パラメータ:
  spec - URL として構文解析される String
例外:
  MalformedURLException - 文字列に指定されたプロトコルが未知である場合

引数にはファイルの位置を表すURLを文字列で指定します。URLを表す文字列とは次のフォーマットとなっています。

プロトコル://ホスト名:ポート番号/ファイル名

例えば「http://www.yahoo.co.jp:80/index.html」などが該当します。

このコンストラクタを使用する場合には「java.net.MalformedURLException」クラスの例外が発生する可能性がありますのでその処理を記述しておく必要があります。

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

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

サンプルプログラム

では実際に試してみましょう。URLクラスを使ってインターネット上の画像ファイルを指定し、そのURLクラスのオブジェクトからImageIconクラスのオブジェクトを作成します。そしてImageIconクラスのオブジェクトを使ってJLabelクラスのオブジェクトを作成します。

JUrlTest1.java

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

public class JUrlTest1 extends JFrame{

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

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

  JUrlTest1(){
    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);
      label = new JLabel(icon);
    }else{
      label = new JLabel("Not image");
    }

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

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

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

URLを表す文字列を使ってURLクラスのオブジェクトを作成

( Written by Tatsuo Ikura )