laylayzi
Mario & Luigi
- 22/11/08
- 741
- 59
số là hôm nay ông thầy có cho 1 đoạn code "trái banh chạy trên màn hình" bảo về nhà tự đọc tự tìm hiểu và ổng ko giải thích gì thêm
cái chính là xem và hiểu cách làm việc của multithread
đây là lần đầu em gặp code java, trước đây chưa từng học về cái này
nên săn tiện muốn tìm hiểu thêm tí
về đoạn code dưới đây em cũng hiểu đc sơ sơ
duy chỉ có cái hàm g.dispose() ko hiểu để làm gì
pác nào giải thích giúp em, em xin cám ơn & nếu đc thì giải thích nguyên đoạn code giùm em xem cái "sơ sơ" của em hiểu đc có chính xác ko
cám ơn máy pác nhiều
cái chính là xem và hiểu cách làm việc của multithread
đây là lần đầu em gặp code java, trước đây chưa từng học về cái này
nên săn tiện muốn tìm hiểu thêm tí
về đoạn code dưới đây em cũng hiểu đc sơ sơ
duy chỉ có cái hàm g.dispose() ko hiểu để làm gì
pác nào giải thích giúp em, em xin cám ơn & nếu đc thì giải thích nguyên đoạn code giùm em xem cái "sơ sơ" của em hiểu đc có chính xác ko
cám ơn máy pác nhiều

Mã:
import java.awt.*;
import javax.swing.*;
public class Balls extends Thread{
private JPanel box;
private static final int XSIZE=10;
private static final int YSIZE=10;
private int x=0;
private int y=0;
private int dx=2;
private int dy=2;
public Balls(JPanel p){
box=p;
}
public void draw(){
Graphics g=box.getGraphics();
g.fillOval(x,y,XSIZE,YSIZE);
g.dispose();
}
public void move(){
Graphics g=box.getGraphics();
g.setXORMode(Color.GREEN);
g.fillOval(x,y,XSIZE,YSIZE);
x+=dx;
y+=dy;
Dimension d=box.getSize();
if(x<0){
x=0;
dx=-dx;
}
if(x+XSIZE>=d.getWidth()){
x=d.width-XSIZE;
dx=-dx;
}
if(y<0){
y=0;
dy=-dy;
}
if(y+YSIZE>=d.getHeight()){
y=d.height-YSIZE;
dy=-dy;
}
g.fillOval(x,y,XSIZE,YSIZE);
g.dispose();
}
public void run(){
draw();
for(int i=0; i<5000; i++){
move();
try{
sleep(10);
}catch(InterruptedException ex){
JOptionPane.showMessageDialog(null,ex.toString(),"Thong Bao Loi",JOptionPane.ERROR_MESSAGE);
}
}
}
}
