Saturday, June 18, 2011

Dasar-dasar Thread

Assalamu`alaikum,...

wah sudah lama ane ga posting..
itu semua dikarenakan terlalu banyak tugas sampai-sampai ga bisa buka blog..
pada kesempatan ini saya akan bagi-bagi tips dan tutorial tentang bahasa pemrograman java khususnya pada grafika komputer dengan menggunakan Thread.
pengenalan dulu tentang Thread.
Thread merupakan  kemampuan  yang  disediakan  oleh  Java  untuk membuat aplikasi  yang  tangguh,  karena  thread  dalam  program  memiliki  fungsi  dan  tugas tersendiri. Dengan adanya  thread, dapat membuat program yang  lebih efisien dalam hal kecepatan maupun penggunaan  sumber daya, karena kita dapat membagi proses dalam  aplikasi  kita  pada  waktu  yang  sama.
Thread  umumnya  digunakan  untuk pemrograman  multitasking,  networking, yang  melibatkan  pengaksesan  ke  sumber daya secara konkuren.(wiki)

langsung saja contoh pembuatan animasi dengan menggunakan Thread.
pada contoh dibawah ini, text digerakkan kekanan dan kekiri,
untuk menggerakkannya hanya dengan mengubah koordinat x yang nilainya ditambah/dikurangi didalam fungsi Thread tersebut.
neh contoh 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.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 dasarThread extends JPanel {
    //Membuat variabel thread
    Thread animasi;

    int x=10, batas = 300;

    // <editor-fold defaultstate="collapsed" desc="Coret2dinding.blogspot.com">
    public dasarThread() {
        setPreferredSize(new Dimension(500, 500));
        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) {
                    if (x < batas) {
                        x = x + 5;
                        batas = 300;
                    } else {
                        x=x-5;
                        batas=10;
                    }

                    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, 15));
        g2.drawString("Coret2dinding.blogspot.com", x, 150);
    }

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

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

    }
    // </editor-fold>

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

Kalau ada yang masih bingung silahkan tinggalkan komentar.
--Semoga Membantu--

No comments:

Post a Comment