ImageFrame.javaimport java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
public class ImageFrame extends JFrame {
BufferedImage img;
public ImageFrame(BufferedImage img, String title) {
this.img = img;
setup(title);
}
public ImageFrame(String filename) {
readImage(filename);
setup(filename);
}
private void setup(String title) {
setTitle(title);
//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(new ImagePanel());
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public void readImage(String filename) {
try {
img = ImageIO.read(new File(filename));
} catch (IOException e) {
//System.out.println(e); // e.getMessage());
System.out.println(filename + " not found");
System.exit(-1);
}
}
public void writeImage(String filename) {
writeImage(filename,"jpg");
}
public void writeImage(String filename, String format) {
File file = new File(filename + "." + format);
try {
ImageIO.write(img, format, file);
} catch (IOException e) {
System.out.println("image write failed");
System.out.println(e);
System.exit(-1);
}
}
public Dimension getPreferredSize() {
if (img == null) {
return new Dimension(100,100);
} else {
return new Dimension(img.getWidth(null), img.getHeight(null));
}
}
class ImagePanel extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img, 0, 0, null);
}
}
public static void main(String[] args) {
ImageFrame f1 = new ImageFrame("owl.jpg");
f1.setLocation(100,100);
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageFrame f2 = new ImageFrame("bld.jpg");
int w = f1.getWidth();
f2.setLocation(150+w,100);
ImageFrame f3 = new ImageFrame("duke_skateboard.jpg");
int h = f1.getHeight();
f3.setLocation(100,150+h);
}
}
Maintained by John Loomis, updated Thu Jun 12 15:11:26 2014