Home > Pemrograman Java, Sistem Operasi > Susahnya Bikin Thread di Netbeans (Dasar Pemula)

Susahnya Bikin Thread di Netbeans (Dasar Pemula)


Setelah bingung berhari-hari…bukan cuma hitungan jam…maklum newbie… setelah coba sana coba sini …maaf…saya belum berhasil menemukan referensi atau tutorial tentang ini….akhirnya…berhasil juga.

Contoh eksekusi program multithread di Netbeans (Java)

Langsung saja, ini kode programnya…gampang dipahami kok.

/*
 * JThreadFrame.java
 * Created by Husni, lunix96@yahoo.com, komputasi.wordpress.com
 * Created on 11 Des 09, 11:51:04
 */

package belajar;

public class JThreadFrame extends javax.swing.JFrame {

    class ThreadOne implements Runnable {

        public void run() {
            for (int i = 100; i >= 80; i--) {
                jTextArea1.append(i + ". Susahnya bikin Thread di Netbeans\n");
                try {
                    Thread.sleep(1000);
                } catch (Exception e) {  }
            }
        }
    }

    class ThreadTwo implements Runnable {

        public void run() {
            for (int i = 100; i <= 200; i = i +15) {
                jTextArea1.append(i + ". Akhirnya bisa juga huhu...\n");
                try {
                    Thread.sleep(500);
                } catch (Exception e) {  }
            }
        }
    }

    /** Creates new form JThreadFrame */
    public JThreadFrame() {
        initComponents();
    }    

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
        Thread satu = new Thread(new ThreadOne());
        satu.start();
        Thread dua = new Thread(new ThreadTwo());
        dua.start();
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new JThreadFrame().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration
}

Kalo mau dipanggil dari file java lain juga bisa, misalnya:

/*
 * GUIThread.java
 * Created by Husni, lunix96@yahoo.com, komputasi.wordpress.com
 * Created on 11 Des 09, 11:51:04
 */

package belajar;

public class GUIThread {

    public static void main(String[] args) {
        JThreadFrame s = new JThreadFrame();
        s.setVisible(true);        
    }
}

Intinya, kita harus membuat kelas yang mengimplementasikan Runnable langsung di dalam kelas utama dari jFrame, dalam contoh ini adalah JThreadFrame. Jika dibuat di luar kelas itu, seperti kebanyakan program console, komponen-komponen di atas jFrame tidak dapat diakses, alasannya simpel “variabel non-statik tidak dapat diakses dari kelas atau metode statik”.

Moga bermanfaat🙂

  1. dimas
    11 December 2009 at 4:03 pm

    package belajarnya mana bknnya ga bisa klo ga ada packagenya

    • 11 December 2009 at 6:57 pm

      package itu hanya nama folder atau direktori. Artinya, kedua file itu ada dalam direktori belajar. Karena tidak ada kaitan langsung, silakan “package belajar” di dalam kode program di hapus. Di jamin program masih berjalan dengan baik. Kecuali yang kedua, package belajar harus tetap ada. Kalo di simpan di dalam direktori lain…ya…ganti namanya.

      Bagi yang sudah ahli…sharing dong hehee🙂

  2. bang jefri
    15 March 2010 at 2:31 am

    wops baru nemu nih blog yang ok punya sekalipun saya belum tau semuanya tapi saya salut, semoga blog sobat bisa acuan saya tuk belajar..thx dan salam kenal

    • 12 July 2010 at 4:28 am

      semoga berguna, salam kenal juga🙂

  3. 10 June 2010 at 3:51 pm

    wah mantabs, salam kenal,,,

    • 12 July 2010 at 4:23 am

      salam kenal juga. moga bermanfaat🙂

  4. 10 July 2010 at 5:12 am

    Keren Pak……
    jadi pengen mencoba …..🙂

    • 12 July 2010 at 4:20 am

      keren? kayaknya berlebihan. Thank u kunjungannya…moga jadi ilmu yang bermanfaat🙂

  5. dori
    29 July 2010 at 2:39 am

    Salam kenal pak, saya ingin bertanya tentang multithreading. Saat ini saya sedang membuat tugas animasi bangun datar menggunakan java (Netbeans). Tapi saya kesulitan untuk mengatur kerja dua buah threading yang saya buat. Bagaimana caranya agar Thread kedua (ketJari), muncul setelah Thread pertama (Jari) selesai dikerjakan. Berikut potongan kode program yang saya buat, berdasarkan tutorial diatas :


    private Gambar g;

    //Thread pertama = Jari
    public class Jari extends JPanel implements Runnable{
    int posisi=108;

    public Jari(){
    Thread j = new Thread(this);
    j.start();
    }
    public void actionPerformed(ActionEvent e){
    repaint();
    }
    public void paintComponent(Graphics g){
    super.paintComponent(g);
    g.setColor(Color.white);
    g.fillRect(0, 0, this.getWidth(), this.getHeight());
    g.setColor(Color.BLUE);
    g.setColor(Color.CYAN);
    g.drawLine(160,108,160,posisi);
    g.setColor(Color.red);
    g.drawLine(160,108,posisi2,108);
    repaint();
    }

    public void run(){

    while(true){
    if(posisi<=210){
    posisi++;
    try{
    Thread.sleep(500);
    }catch(Exception e3){}
    }
    if(posisi2<=260){
    posisi2++;
    try{
    Thread.sleep(500);
    }catch(Exception e5){}
    }

    }
    }
    }

    //Thread kedua = ketJari
    public class ketJari implements Runnable{
    public ketJari(){
    Thread ketJa = new Thread (this);
    ketJa.start();
    }
    public void run(){

    String ket;
    ket="Garis adalah gabungan dua titik atau lebih";
    jTextPane1.setText(ket);
    try{
    Thread.sleep(200);
    }catch(Exception ie4){}
    }
    }

    //Memanggil Thread lewat RadioButton
    private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    Jari unsur = new Jari();
    unsur.setPreferredSize(new Dimension(300,215));
    jScrollPane1.add(unsur);
    jScrollPane1.setViewportView(unsur);
    jScrollPane1.setBackground(Color.white);

    Thread jr = new Thread(new Jari());
    jr.start();
    Thread kj = new Thread(new ketJari());
    kj.start();
    }

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: