Nomor 4 ini mengandung draw / fill lebih dari satu (tidak seperti nomor 3). Karena diperlukan 10 batang berjalan, maka diperlukan 10 draw / fill. Bisa saja draw / fill di copy /paste. Namun yang lebih elegant (baik) adalah dengan menggunakan loop. Dalam kasus kita ini, kita gunakan for. Berikut ini adalah bagian yang mengandung logika paling penting untuk menampilkan hal tersebut:
package noFrame;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Animation extends JPanel implements ActionListener{
private int x, width;
public Animation(int x, int width){
this.x = x;
this.width = width;
}
public void actionPerformed(ActionEvent aE){
repaint();
}
public void paintComponent(Graphics g){
super.paintComponent(g);
int numberOfBars = 10;
x--;
g.setColor(Color.PINK);
for(int i=0; i < numberOfBars; i++){
int xTemp = x + i*width/numberOfBars;
g.draw3DRect(xTemp, 60, 10, 70, true);
g.fill3DRect(xTemp, 60, 10, 70, true);
}
}
}
Aku pikir kuis 3 nomor 3 terlalu mudah. Jadi tak perlu ditulis disini. Tapi apa betul terlalu mudah ? Kalau ada permintaan, aku akan menuliskan jawabannya di blog ini. Silahkan juga ditanyakan kalau ada pertanyaan/koreksi/komentar mengenai jawaban kuis 3 nomor 4 ini.
Friday, October 30, 2009
Subscribe to:
Post Comments (Atom)
Wah, untung aja kemarin gak bener2 dijadiin 10 batang. ahaha, ternyata caranya sedikit rumit.
ReplyDeleteSebenarnya tidak rumit, asalkan paham konsep dari mana dapatnya xTemp. Ada teman anda yang tidak/belum paham bagaimana membuat jarak antar batang adalah sepersepuluh lebar jScrollPane. Maka, untuk mereka, pasti timbul pertanyaan mengapa xTemp = x + i*width/numberOfBars.
ReplyDelete