Jumat, 15 Oktober 2010

AnimationFrame

Animasi memang sangat diperlukan pada sebuah aplikasi sekarang ini, karena effectnya yang unik dapat memikat pengguna dan tidak cepat bosen dengan model aplikasinya.
untuk itu sangat disarankan dalam pembuatan aplikasi apapun diharapkan ada effect yang dapat melengkapi simulasi bekerjanya suatu aplikasi.

Contoh AnimasiFrame yang bergerak dari atas sampai ketengah.

pertama buat timer untuk menggerakan frame

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package latihan;

import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;

/**
*
* @author manjava
*/
public class Animator implements ActionListener{
ActionFX fx;
int delay=0;
boolean bol;
public Animator(ActionFX fx){
this.fx=fx;
}

public void actionPerformed(ActionEvent e) {
delay++;
int s=10+delay;
int h=10+s;
fx.point.y=+h;

fx.frame.setLocation(fx.point.x,fx.point.y);
if(delay==300){
fx.timer.stop();
}
}

}


kedua buat suatu aksi yang nantinya akan menghubungkan
kinerja dari timer ke frame utama.

package latihan;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import javax.swing.JFrame;
import javax.swing.Timer;

/**
*
* @author manjava
*/
public class ActionFX{
Timer timer;
JFrame frame;
Point point;
public ActionFX(){
Animator anm = new Animator(this);
timer = new Timer(000,anm);
timer.addActionListener(anm);

}
public void setAnimation(JFrame frame,Point p){
this.frame=frame;
this.point=p;
}

public void run(){
timer.start();
}
}

ketiga buat frame utama, disini saya buat frame sederhana dan tidak kompleks.

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package latihan;

import java.awt.Graphics;
import java.awt.Point;
import javax.swing.JFrame;

public class FXman extends JFrame{
ActionFX fx;
public FXman(){
setLocationRelativeTo(null);
fx = new ActionFX();
Point po = getLocation();
setLocation(new Point(po.x,0));
fx.setAnimation(this, po);

setDefaultCloseOperation(3);
setSize(300,300);
setVisible(true);
fx.run();
}
public static void main(String[]args){
new FXman();
}

}

Tidak ada komentar: