Saturday, June 18, 2011

Animasi Text warna warni menggunakan Bahasa Pemrograman Java

Setelah tadi posting artikel tentang dasar-dasar Thread serta contoh program dasarnya, sekarang selanjutnya kami akan bahas tentang animasi-animasi dengan menggunakan Thread.
Pada artikel ini akan dibahas tentang cara pembuatan animasi Text yang bisa berubah warna secara random.
Dan pada postingan selanjutnya akan kami bahas tentang animasi animasi yang lain.

langsung saja pada source codenya..
Kalau ingin mengkopi dipersilahkan, bahkan dianjurkan, :)


/*
 * 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 animasiText2 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 animasiText2() {
        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) {
                    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)));
        g2.drawString("Coret2dinding.blogspot.com", 100, 100);
    }

    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 animasiText2());
                frame.pack();
                frame.setResizable(false);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });

    }
    // </editor-fold>

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

Kalau ada yang masih kurang jelas silahkan tinggalkan komentar.
--Semoga Membantu--

No comments:

Post a Comment