前提・実現したいこと
JavaのImageIO.readで画像を表示したいです。
発生している問題・エラーメッセージ
エラーメッセージはありませんが、画像が表示されません。
該当のソースコード
クラス名がIVMain.javaのコードです。
Java
1package jp.ohtsuki.image; 2 3import javax.swing.JFrame; 4//import javax.swing.JLabel; 5 6public class IVMain { 7 JFrame frame1; 8 ImageView view1 = new ImageView("test.png"); 9 IVMain() { 10 frame1 = new JFrame("画像ビュワー"); 11 frame1.add(view1); 12 frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 13 frame1.setSize(640,480); 14 frame1.setVisible(true); 15 frame1.setLocationRelativeTo(null); 16 } 17 public static void main(String[] args) { 18 // TODO Auto-generated method stub 19 new IVMain(); 20 21 } 22 23}
クラス名がImageView.javaのコードです。
Java
1package jp.ohtsuki.image; 2 3import java.awt.image.BufferedImage; 4import java.io.File; 5import java.io.IOException; 6 7import javax.imageio.ImageIO; 8import javax.swing.JLabel; 9import javax.swing.JOptionPane; 10 11public class ImageView extends JLabel { 12 private static final long serialVersionUID = 1L; 13 BufferedImage bimage; 14 15 ImageView(String fname){ 16 try { 17 bimage = ImageIO.read(new File(fname)); 18 } catch (IOException e) { 19 // TODO Auto-generated catch block 20 e.printStackTrace(); 21 JOptionPane.showMessageDialog(null,"ファイルが読みこめません", 22 "イメージビュー",JOptionPane.ERROR_MESSAGE); 23 } 24 } 25 26} 27
試したこと
以上のプログラムを実行するとこのようにウィンドウだけが表示されます。
例外処理の「ファイルが読み込めません」は表示されていないので、
bimage = ImageIO.read(new File(fname));は実行されていると思います。
補足情報(FW/ツールのバージョンなど)
使用しているOSはwindows10
javaは14.0.1です。
なぜreadしたいかによりますが、
画像をbimageに読み込んだだけなので、setIcon()するなり、paintComponent()をオーバーライドして自分で描画するなりが必要です。
回答1件
あなたの回答
tips
プレビュー