package com.javaxyq.widget;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
public class Frame extends AbstractWidget {
private static final long serialVersionUID = 2191491798990378838L;
private BufferedImage image;
/** ֡�Ľ���ʱ�� */
private long endTime;
private int refPixelX;
private int refPixelY;
public Frame(BufferedImage image, long endTime, int centerX, int centerY) {
this.image = image;
this.endTime = endTime;
this.refPixelX = centerX;
this.refPixelY = centerY;
setWidth(image.getWidth(null));
setHeight(image.getHeight(null));
}
public Image getImage() {
return image;
}
/**
* ����һ���µ�Image
*
* @return
*/
public Image newImage() {
BufferedImage buf = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics g = buf.getGraphics();
g.drawImage(image, -refPixelX, -refPixelY, null);
g.dispose();
return buf;
}
@Override
public void dispose() {
this.image = null;
}
@Override
protected void doDraw(Graphics2D g2, int x, int y, int width, int height) {
int x1 = x - this.refPixelX;
int y1 = y - this.refPixelY;
g2.drawImage(this.image, x1, y1, x1 + width, y1 + height, 0, 0, width, height, null);
}
public long getEndTime() {
return endTime;
}
public void setEndTime(long endTime) {
this.endTime = endTime;
}
public int getRefPixelX() {
return refPixelX;
}
public void setRefPixelX(int centerX) {
this.refPixelX = centerX;
}
public int getRefPixelY() {
return refPixelY;
}
public void setRefPixelY(int centerY) {
this.refPixelY = centerY;
}
public void setImage(BufferedImage image) {
this.image = image;
}
public boolean contains(int x, int y) {
return false;
}
}