Java'da Animasyon Örneği
Java'da bir grup resmin artarda hızla gösterilmesi esasına dayanarak canlandırma yapan bir örnek. Resim yüklemeyi ve zamanlayıcı kullanımını da içeriyor.
Bilindiği gibi canlandırma (animasyon) resimlerin artarda gösterilmesiyle oluşur. İnsan gözü, saniyede gösterilen resim sayısı fazlaştıkça haraketli bir görüntü izlendiği yanılsaması yaşanır. Java'da bir tuval (canvas) üzerinde belli görüntülerin (image'ların) peş peşe gösterilmesi canlandırma etkisi bırakır. Resim Yükleme Toolkit toolkit=Toolkit.getDefaultToolkit(); Resim Çizme Image'lar Java'da Graphics sınıfının drawImage() yöntemiyle gerçekleştirilir. public void paint(Graphics g){ Belli aralıkla repaint() yömntemi çağrılırsa, resimler artarda çizilmiş sayılır. Bir işlemin belli bir zaman ara verilerek yapılmasının Timer java.util.Timer timer=new java.util.Timer(); Bu şekilde bir canlandırma gerçekleştirmek için aşağıdaki gibi bir kod yazılabilir :
Java'da resim yüklemek için Toolkit (araç takımı) sınıfı kullanılır. Toolkit, görüntü yüklemek için üzerinde çalışılan prlatformun masaüstü sistemini kullanır.
Image image=toolkit.getImage(filePath);
g.drawImage(image,0,0,this);
}
Zamanlama
TimerTask task=new TimerTask(){
public void run(){
repaint();
}
};
timer.schedule(task,0,500);import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class AnimasyonCanvas extends Canvas{
private Vector images=new Vector();
private int current=0;
public AnimasyonCanvas(){
java.util.Timer timer=new java.util.Timer();
TimerTask task=new TimerTask(){
public void run(){
repaint();
}
};
timer.schedule(task,0,500);
}
public void addImage(String filePath){
Toolkit toolkit=Toolkit.getDefaultToolkit();
Image image=toolkit.getImage(filePath);
images.add(image);
}
public void paint(Graphics g){
current=current%images.size();
Image image=(Image)images.get(current);
g.drawImage(image,0,0,this);
current++;
}
public static void main(String[] args){
Frame frame=new Frame();
AnimasyonCanvas canvas=new AnimasyonCanvas();
String folder="E:\Goya\JavaDeeply\JavaBook\JavaBook\test";
canvas.addImage(folder+"\frame_1.gif");
canvas.addImage(folder+"\frame_2.gif");
canvas.addImage(folder+"\frame_3.gif");
canvas.addImage(folder+"\frame_4.gif");
canvas.addImage(folder+"\frame_5.gif");
frame.add(canvas);
frame.setBounds(0,0,100,130);
frame.setVisible(true);
}
}
Kaynak www.godoro.com/Portal/Content/Article/ArticleViewPage.aspx