Showing posts with label thread. Show all posts
Showing posts with label thread. Show all posts

Friday, February 15, 2013

Java : Swing Worker Example

Dari post sebelumnya, saya telah membahas secara singkat mengenai swing worker. Unutk post kali ini saya akan memberikan contoh sederhana implementasi dari swing worker.

Pertama kita buat GUI seperti dibawah ini. Nama frame nya yaitu SwingWorkerFrameExample  berikan nama variable untuk text area dengan nama textArea dan variable untuk button start yaitu start serta untuk button stop yaitu stop.





















Untuk memudahkan kita dalam melakukan pemanggilan objek dari frame diatas, kita tambahkan method seperti dibawah ini, caranya kita masuk ke source dari frame dan tuliskan code dibawah ini.


 private static SwingWorkerFrameExample swingWorkerFrameExample;
    
    public static SwingWorkerFrameExample getInstance(){
        if(swingWorkerFrameExample==null){
            swingWorkerFrameExample= new SwingWorkerFrameExample();
        }
        return swingWorkerFrameExample;
    }

    public JTextArea getTextArea() {
        return textArea;
 }
 

Selanjutna kita buat kelas, contoh kelasnya yaitu SwingWorkerExample yang mengextends ke kelas SwingWorker. codenya seperti dibawah ini.



import javax.swing.SwingWorker;

/**
 *
 * @author adi nuralim adinuralim@gmail.com
 * @since 20-Jan-2013
 */
public class SwingWorkerExample extends SwingWorker<Void, Void> {

    public static SwingWorkerExample swingWorkerExample;
    
    public static SwingWorkerExample getInstance(){
        if(swingWorkerExample==null){
            swingWorkerExample= new SwingWorkerExample();
        }
        return swingWorkerExample;
    }
    @Override
    protected Void doInBackground() throws Exception {
        //masukan statement.....
        
        while(true){
            //menampilkan string ke texarea dari frame
            SwingWorkerFrameExample.getInstance().getTextArea().append("adicodes.blogspot.com\n");
Thread.sleep(1000);
        }
    }

}



Jika kita telah membuat kelas tersebut, kelas itu akan melakukan overaide method doInBackground dari kelas SwingWorker. dimethod tersebut kita masukan statement yang akan dieksekusi dengan background thread. Untuk kasus sekarang, statement yang saya buat yaitu menampilkan "http://adicodes.blogspot.com/". artinya ketikan program dijalankan, maka akan tampil kelayar "http://adicodes.blogspot.com/"  terus menerus.

Kemudian kita berikan sebuah aksi untuk button start. button start ini berfungsi untuk menjalankan background  thread yang telah kita buat.

code programnya seperti dibawah ini.


private void startActionPerformed(java.awt.event.ActionEvent evt) {
//mengecek thread di cancel atau tidak
        if (SwingWorkerExample.getInstance().isCancelled()) {
       
            //isCanceled
            SwingWorkerExample swe = new SwingWorkerExample();
            SwingWorkerExample.swingWorkerExample=swe;
            swe.execute();
        } else {
            //false
            SwingWorkerExample.getInstance().execute();
        }
}


Setelah kita memberikan aksi untuk button start, sekarang kita berikan aksi juga untuk button stop. fungsinya untuk menghentikan background thread.


private void stopActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
   
            SwingWorkerExample.getInstance().cancel(true);
        
    }

Oke, sekarang kita coba running, maka hasilnya akan seperti berikut ini :




















  • struktur filenya :










Selamat mencoba, semoga bermanfaat.

Wednesday, January 2, 2013

Java : membuat kelas Swing Worker

Sebelumnya kita telah membahas sedikit mengenai swing worker. kelas ini berfungsi untuk menjalankan background thread. Sekarang kita akan mencoba untuk membuat sebuah kelas yang meng extends ke kelas SwingWorker. contoh nama kelasnya yaiut SwingWorkerExample.

Berikut ini contoh code dari kelas SwingWorker


/**
 *
 * @author adi nuralim
 */
public class SwingWorkerExample extends SwingWorker<Void, Void> {

//method override dari kelas SwingWorker
    @Override
    protected Void doInBackground() throws Exception {
       while(true){
     
//statement dari program....

//thread yang akan berjalan setiap 1000milisecond. atau 1 detik
           Thread.sleep(1000);
       }
    }
    
}

S.O.P("semoga bermanfaat...");

Monday, December 31, 2012

Java : Swing Worker

Swing worker merupakan kelas pada java yang biasanya digunakan untuk membuat background thread. Dimana background thread ini berfungsi menjalankan proses yang cukup lama, seperti query ke database atau proses - proses yang lainnya.

Untuk membuat backgoround thread sangat sederhana. kita cukup membuat sebuah kelas yang mengextends kelas Swing Worker. Kemudian kita ciptakan Object dari kelas tersebut dan panggil method execute() yang merupakan method dari kelas Swing Worker.

Agar lebih jelas, di post selanjutnya saya akan memberikan program sederhana untuk membuat background thread dengan menggunakan Swing Worker.. 

terima kasin.. ^.^



Aplikasi Web Crawler Untuk Pengarsipan Konten Web

Berikut ini printscreen tampilan dari aplikasi web crawler : Gambar 1 Splashscreen Gambar 2  Halaman Utama Gambar 3  Pengat...