import java.awt.image.BufferedImage; import java.awt.Image; import java.io.File; import java.io.IOException; import java.util.Iterator; import javax.imageio.ImageIO; import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JScrollPane; public class ImageReaderTest1 { public ImageReaderTest1() {} public ImageReaderTest1(String filename) { Image image = readImage(filename); initFrame(filename, image); } protected Image readImage(String filename) { Iterator readers = ImageIO.getImageReadersBySuffix(getSuffix(filename)); if (readers.hasNext()) { ImageReader reader = (ImageReader)readers.next(); try { ImageInputStream stream = ImageIO.createImageInputStream(new File(filename)); reader.setInput(stream); Image image = reader.read(0); reader.dispose(); return image; } catch (IOException ex) { ex.printStackTrace(); } } return null; } protected void initFrame(String imageName, Image image) { if (image != null) { JFrame frame = new JFrame(imageName); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ImageIcon icon = new ImageIcon(image); JLabel label = new JLabel(icon); frame.getContentPane().add(new JScrollPane(label)); frame.pack(); frame.setVisible(true); } } protected String getSuffix(String filename) { int i = filename.lastIndexOf('.'); if(i>0 && i"); } } }