Monday, June 20, 2011

Membuat Animasi Teks Effect zoom (membesar/mengecil) menggunakan Bahasa Pemrograman Java

Pada kesempatan ini saya akan share cara membuat effect zoom pada animasi teks, teks akan bisa membesar atau mengecil sesuai dengan yang kita inginkan. Untuk mengatur kecepatan / seberapa besar teks / object akan d zoom bisa dilakukan pada fungsi Thread.
Pada tips ini hanya mengubah ukuran teks/object dengan memasukkan variabelnya pada Thread.

Untuk lebih jelasnya bisa dilihat pada Source Code berikut :



/*
 * 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 animasiText5 extends JPanel {
    //Membuat variabel thread
    Thread animasi;
    int x=10,y=10,a=10, batas =50;

    // <editor-fold defaultstate="collapsed" desc="Coret2dinding.blogspot.com">
    public animasiText5() {
        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 membuat zoom">
                    if(a<batas){
                        a=a+2;
                        batas=50;
                    }else{
                        a=a-2;
                        batas=2;
                    }
                    // </editor-fold>

                    try {
                        //untuk mengatur kecepatan thread, semakin kecil nilai semakin cepat
                        Thread.sleep(30);
                    } 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, a));
        g2.setColor(new Color(0,0,255));
        g2.drawString("Coret2dinding.blogspot.com", 10, 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 animasiText5());
                frame.pack();
                frame.setResizable(false);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });

    }
    // </editor-fold>

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

untuk mendownload file java nya bisa dilihat disini.

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

4 comments:

  1. Thax gan....artikelnya....
    ditunggu kunjungan baliknya gan....!!!!!

    ReplyDelete
  2. ok gan sama2...
    siip..
    langsung meluncur..
    :)

    ReplyDelete
  3. mau tanya ney...
    kalau buat text berjalan kayak dikhir film pake java gmn yah??? mohon bantuannya...

    ReplyDelete
  4. itu berarti bikin beberapa string untuk kalimat/kata2nya..
    untuk nilai "y" dari string tersebut awalnya d taruh dluar form(dibawahnya)..
    kemuudian nilai "y" dikurangi..
    Mmm..
    untuk lebih jelasnya habis ini q bikin contohnya..
    tunggu ya! :)

    ReplyDelete