package javademo.swing; import java.awt.Graphics; import java.awt.Image; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; /** * @author Dharma * @created 2009-5-17 */ public class ImageTest { public static void main(String[] args) { ImageFrame frame = new ImageFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } /** A frame with an image panel */ class ImageFrame extends JFrame { private static final long serialVersionUID = 1L; public ImageFrame() { setTitle("ImageTest"); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); // add panel to frame ImagePanel panel = new ImagePanel(new File("4_6.jpg")); add(panel); } public static final int DEFAULT_WIDTH = 300; public static final int DEFAULT_HEIGHT = 200; } /** A panel that displays a tiled image */ class ImagePanel extends JPanel { private static final long serialVersionUID = 1L; public ImagePanel(File file) { try { image = ImageIO.read(file); init(); } catch (IOException e) { e.printStackTrace(); } } public ImagePanel(byte[] imageContent) { try { image = ImageIO.read(new ByteArrayInputStream(imageContent)); init(); } catch (IOException e) { e.printStackTrace(); } } private void init() { if (image == null) { return; } int imageWidth = image.getWidth(this); int imageHeight = image.getHeight(this); this.setSize(imageWidth, imageHeight); } public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, 0, 0, null); } private Image image; }