Monday, June 20, 2011

Membuat Animasi Teks / Object Simpel tapi Keren menggunakan Bahasa Pemrograman Java

Setelah selesai memposting cara-cara pembuatan animasi pada teks ataupun object, sekarang mencoba untuk menggabungkan semuanya.
Meskipun pembuatan animasi ini sangat simpel tapi effect dari teks yang dihasilkan cukup keren.

Tidak sabar untuk melihatnya..
langsung saja dicoba sendiri,
berikut source codenya:


/*
 * email        : d_iennitial@yahoo.com
 * blog         : Coret2dinding.blogspot.com
 * twitter     : #iennitial_AK
 * Facebook : /salis.ahmad
 * @author Ahmad Salis A. Khitam
 */


import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class animasiText extends JPanel {
    //Membuat variabel thread
    Thread animasi;
    int x=10,y=10,a=10, batas = 240;

    // <editor-fold defaultstate="collapsed" desc="Coret2dinding.blogspot.com">
    public animasiText() {
        setPreferredSize(new Dimension(500, 300));
        setBackground(Color.black);
        setFocusable(true);
        requestFocusInWindow();
        initThread();
        //untuk memulai thread
        animasi.start();
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        drawText(g2);
    }

    //method untuk menampung thread
    public void initThread() {
        animasi = new Thread(new Runnable() {

            public void run() {
                while (true) {

                    // <editor-fold defaultstate="collapsed" desc="Untuk mengacak warna">
                    if(a<batas){
                        a=a+15;
                        batas=240;
                    }else{
                        a=a-15;
                        batas=15;
                    }
                    // </editor-fold>

                    // <editor-fold defaultstate="collapsed" desc="menggerakkan text">
                    x=(int)(Math.random()*10);
                    y=(int)(Math.random()*10);
                    // </editor-fold>

                    try {
                        //untuk mengatur kecepatan thread, semakin kecil nilai semakin cepat
                        Thread.sleep(50);
                    } catch (Exception e) {
                    }
                    //untuk memanggil repaint
                    SwingUtilities.invokeLater(new Runnable() {
                        public void run() {
                            repaint();
                        }
                    });
                }
            }
        });
    }

    public void drawText(Graphics2D g2) {
        g2.setFont(new Font("Calibri", 1, 25));
        g2.setColor(new Color((int)(Math.random()*250), (int)(Math.random()*250), (int)(Math.random()*250), a));
        g2.drawString("Coret2dinding.blogspot.com", 100+x, 100+y);
    }

    public void xplay() {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                final JFrame frame = new JFrame("Animasi Text");
                frame.setDefaultCloseOperation(
                        JFrame.EXIT_ON_CLOSE);
                frame.add(new animasiText());
                frame.pack();
                frame.setResizable(false);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });

    }
    // </editor-fold>

    public static void main(String salis[]) {
        new animasiText().xplay();
    }
}

untuk mendownload file java nya bisa dilihat disini.

apabila ada yang kurang jelas bisa tinggalkan pesan.
--semoga membantu--

No comments:

Post a Comment