ý tưởng
làm 1 tấm ảnh có cảm giác đang chạy trong JFrame- lợi dụng khả năng lưu ảnh cuả mắt , ta làm như sau : tại vị trĩ x,y ta vẽ 1 hình , sau chu kì T ta xóa nó rồi vẽ nó ở chỗ x+i,y+i
- viết applet, dùng hàm paint( Graphics g), repaint() để vẽ lại , dùng Thread để vết chu kì
ví dụ mẫu
import java.awt.Graphics;
import javax.swing.ImageIcon;
import java.applet.Applet;
import java.awt.BorderLayout;
public class Heart extends Applet{
private ImageIcon heart;
private static int x = 10;
private Tuyen1 t ;
public void init(){
heart = new ImageIcon("heart.png");
t = new Tuyen1();
setLayout(new BorderLayout());
}
public void start(){
t.start();
}
public void paint(Graphics g){
heart.paintIcon(this,g,x,10);
}
public static void main(String[] args) {
Heart it = new Heart();
}
public class Tuyen1 extends Thread{
public void run(){
try {
sleep( 1*1000);
}catch (InterruptedException e) {}
while(true){
while ( x <500){
x +=4;
try {
sleep( 1*50);
}catch (InterruptedException e) {}
repaint();
}
while ( x >10){
x -=4;
try {
sleep( 1*50);
}catch (InterruptedException e) {}
repaint();
}
}
}
}
}
2 nhận xét:
try {
sleep( 1*1000);
}catch (InterruptedException e) {}
Đoạn trên dùng làm j vậy? Không nên catch exception mà không làm j cả :)
Tại sao dùng 3 lệnh while. Thử xài 1 lệnh thôi.
Good luck !
try {
sleep( 1*1000);
}catch (InterruptedException e) {}
dùng để chuản bị 1 giây trước khi bắt đầu choa quả tim chạy. hiện tại chưa nghĩ ra cách dùng 1 while
Đăng nhận xét