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) {
00107 repaint();
00108 return;
00109 }
00110 size = new Dimension(image.getWidth(), image.getHeight());
00111
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 }