非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Java/Swing:画像を表示させるには

   

Java/SwingのJFrame上に画像を表示させる方法についてです。Swingでは画像用のウィジェットが用意されているわけではなく、JLabel上に表示させる方法が一般的らしいですね。

完成形はこんな感じです。画面からはみ出た部分はスクロールで確認できるようにしています。

 

ソースコードはこちら。

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

public class ImageShow extends JFrame {
  private Container pane;
  private JScrollPane spane;
  private JLabel label;

  public static void main(String[] args){
    ImageShow f = new ImageShow();
    f.setLocationRelativeTo(null);
    f.setVisible(true);
  }

  ImageShow(){
    super("画像表示テスト");
    setSize(600, 400);
    pane = getContentPane();

    //画像の読み込み
    ImageIcon icon = new ImageIcon("img.jpg");
    //ラベルに画像を表示
    label = new JLabel();
    label.setIcon(icon);
    //JScrollPaneにセット。縦横のスクロールバーが常に表示されるように
    spane = new JScrollPane(label, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    pane.add(spane);

    //終了処理
    setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    addWindowListener(new WindowAdapter(){
      public void windowClosing(WindowEvent e){
        System.exit(0);
      }
    });
  }
}
 

 

スポンサーリンク

 - Java