Niksen Harjanto wrote:
> saya udah convert bagian Thread nya jadi pake SwingWorker, tapi tetep
> aja EDT untuk handle YM nya ke tutup...
> Apa karna di dalem thread itu saya kasih looping WHILE ya?
>
> ini skripnya :
>
> private void updateStatus() {
> Runnable doSetTextLog = new Runnable() {
> public void run() {
> while (Thread.interrupted() == false) {
> try {
> txtLog.append(new
> ClsConverter().getNow_dd_MMM_yyyy_hh_mm_ss() + " - Dari thread\n");
> Thread.sleep(1000);
> }
> catch (InterruptedException ex) {
> }
> }
> }
> };
> SwingUtilities.invokeLater(doSetTextLog);
> }
>
> private void doWork() {
> updateStatus();
> }
>
> swingWorker = new SwingWorker() {
> @Override
> protected Object doInBackground() throws Exception {
> doWork();
> return null;
> }
> };
> swingWorker.run();
>
> format itu ikutin dari mana ya? wiki gtu? katanya format itu untuk Java 6...
>
> makasih...
>
>
Kalau sudah pakai SwingWorker, harusnya sudah ga perlu lagi donk bikin
method khusus untuk sinkronisasi ke EDT. Gunakan saja method *publish*,
*process* dan *done*. Override ketiga method2x tsb kalau ingin
berkomunikasi dengan EDT.
Dan biasanya method *done* ini djalankan ketika *doInBackground* sudah
selesai dengan tugas-nya. Nah gmn klo dalam method *doInBackground* kita
ingin kasih notifikasi ke EDT ? Caranya gunakan method *publish* dan
*process*.
Kalau ingin penjelasan lebih detail dengan SwingWorker, selain dari link
yang sudah diberi ama Pak Endy dan mas Ifnu. Saya menggunakan referensi
dari sini[1] karena ada contoh nyata-nya juga dan *it's work* :D
Klo masih bingung juga, saya juga udah pernah nulis tentang SwingWorker
dengan contoh yang lebih simple tentu-nya dan dengan bahasa sendiri juga
disini[2] :D
[1] http://java.sun.com/developer/technicalArticles/javase/swingworker/
[2]
http://martinusadyh.web.id/2009/11/07/lebih-dekat-dengan-class-swingworker/
--
Regards,
Martinus Ady H.
Registered Linux User #410906
Personal Blog : http://martinusadyh.web.id/
Planet NetBeans ID : http://planetnetbeans.org/id/index.html
Planet Slackware ID : http://planet.slackware-id.org/