Friday, October 30, 2009

Jawaban Kuis 3 nomor 4

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.

2 comments:

  1. Stephen Zhuang 03320090010October 31, 2009 at 10:53 AM

    Wah, untung aja kemarin gak bener2 dijadiin 10 batang. ahaha, ternyata caranya sedikit rumit.

    ReplyDelete
  2. Sebenarnya 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