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);
}
Sekarang di coba di Eclipse .
pertama dengan membuat class :
Source code nya :
sekarang kita coba running, maka hasilnya akan seperti berikut ini :
- struktur filenya :
Sumber : http://adicodes.blogspot.com/
0 comments:
Post a Comment