BufferedImagePanel.java

00001 package edu.stanford.hci.r3.util.components;
00002 
00003 import java.awt.Dimension;
00004 import java.awt.Graphics;
00005 import java.awt.Graphics2D;
00006 import java.awt.image.BufferedImage;
00007 
00008 import javax.swing.JPanel;
00009 
00022 public class BufferedImagePanel extends JPanel {
00023 
00027         private BufferedImage image;
00028 
00032         private Dimension size;
00033 
00037         private int x = 0;
00038 
00042         private int y = 0;
00043 
00047         public BufferedImagePanel() {
00048 
00049         }
00050 
00054         public BufferedImagePanel(BufferedImage img) {
00055                 setImage(img);
00056         }
00057 
00061         public int getImageHeight() {
00062                 return image.getHeight();
00063         }
00064 
00068         public int getImageWidth() {
00069                 return image.getWidth();
00070         }
00071 
00075         public Dimension getMinimumSize() {
00076                 return size;
00077         }
00078 
00082         @Override
00083         public void paintComponent(Graphics g) {
00084                 super.paintComponent(g);
00085                 final Graphics2D g2d = (Graphics2D) g;
00086                 if (image != null) {
00087                         g2d.drawImage(image, null, x, y);
00088                 }
00089         }
00090 
00094         public void setImage(BufferedImage img) {
00095                 setImage(img, this.x, this.y);
00096         }
00097 
00103         public void setImage(BufferedImage img, int imgX, int imgY) {
00104                 setOrigin(imgX, imgY);
00105                 image = img;
00106                 if (image == null) { // release memory
00107                         repaint();
00108                         return;
00109                 }
00110                 size = new Dimension(image.getWidth(), image.getHeight());
00111                 // System.out.println(size);
00112                 repaint();
00113         }
00114 
00118         public void setImageCentered(BufferedImage img) {
00119                 setImage(img, (int) ((getWidth() - img.getWidth()) / 2.0), //
00120                                 (int) ((getHeight() - img.getHeight()) / 2.0));
00121         }
00122 
00127         public void setOrigin(int x, int y) {
00128                 this.x = x;
00129                 this.y = y;
00130         }
00131 }

Generated on Sat Apr 14 18:21:33 2007 for R3 Paper Toolkit by  doxygen 1.4.7