Friday, 7 May 2010

Week 13

Minggu ini kelas OOP melanjutkan membuat project Rush Hour. Kami di suruh membuat dari membaca file sampai peletakan button dan component untuk menggerakan button nantinya. Sambil dipandu oleh ko Redo dan ko Franky saya akhirnya berhasil menyelesaikan sampai menempatkan button sesuai dengan peta dan meregister button pada action listener.

Tugas kami untuk 2 minggu lagi adalah membuat agar button bisa bergerak sesuai dengan input dari user.

Animasi iseng with Java

Minggu ini saya sempet iseng buat animasi pake java, walaupun masi simple banget. Intinya sih cuma gambar bulet pake paintComponent() trus posisi x & y nya dipindah pake for, trus setiap x & y nya pindah di repaint() biar keliatan gerakannya. Trus untuk memperlambat gerakanya pake thread sleep.

class Animation3 extends JPanel {

@Override
public void paintComponent(Graphics g) {
g.setColor(Color.white);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
g.setColor(Color.red);
g.fillOval(x, y, 40, 40);
}
}

pertama method paintComponent dimasukin kedalam inner class. trus posisinya pake instance variable x sama y. setcolor yg pertama untuk buat background warna putih. sebenernya sih bisa aja klo ga pake background putih, tapi fungsi background putih itu lebih untuk menghapus. jadi waktu pindahin posisi x&y lingkaran pake repaint(), klo ga ada setColor(color.white) nya lingkaran sebelumnya masi ada. jadi klo ga dikasi background putih hasilnya itu lingkaran memanjang.

public void visual() {
JFrame frame = new JFrame("My second Animation");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Animation3 animation3 = new Animation3();

frame.getContentPane().add(animation3);
frame.setSize(300, 300);
frame.setBackground(Color.white);
frame.setVisible(true);

for (int a = 0; a <>
x++;
y++;
animation3.repaint();


try {
Thread.sleep(50);
} catch (Exception ex) {
}
}
}

Nah, for diatas untuk ganti nilai x sama y. Trus stiap nambah 1, method repaint() dipanggil. Try catch nya itu untuk memperlambat gerakannya. Klo ga dikasi thread.sleep ga bakal kliatan apa2.
Framenya harus di setvisible sebelum for, ini biar waktu lingkarannya gerak, framenya uda visible, klo for diatas frame.setvisible jadi animasinya jalan dulu baru frameya visible.

No comments:

Post a Comment