Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

[ask] looping ambil data per menit atau per detik

mau tanya master2 java...

bagaimana coding supaya bisa ambil data secara otomatis looping per detik atau per menit.
misalnya tombol "kirim" akan otomatis di click setelah 15 detik program dijalankan.
tombol "ambildata" akan otomatis di click setelah tombol kirim di click 10 detik yang lalu...dst

sebelumnya saya sudah coding menggunakan THREAD spt ini :

<pre lang="java">
public static void bySeconds(long Pengali) {
try {
Thread.sleep(Pengali * 1000);
} catch (InterruptedException e) {
//
}
}

public void SBInterval_1Sec() throws InterruptedException {

System.out.println("Wait");
SB_Request();
SBand_Communicator.bySeconds(3);

System.out.println("Done");
SB_GetData();
SBand_Communicator.bySeconds(3);

System.out.println("Wait");
SB_Save();
SBand_Communicator.bySeconds(3);

SBInterval_1Sec();
}

public void SBInterval_3Sec() throws InterruptedException {
System.out.println("Wait");
SB_Request();
SBand_Communicator.bySeconds(3);

System.out.println("Done");
SB_GetData();
SBand_Communicator.bySeconds(3);

System.out.println("Wait");
SB_Save();
SBand_Communicator.bySeconds(3);

SBInterval_3Sec();
}< /pre>
tapi waktu di jalankan GUI yg saya buat malah hang [not responding] TAPI klo tombol [request, get, save] di tekan satu2 tanpa pake looping, data bisa ditampilkan/diambil dan kemudian di save ke database

mohon bantuannya, tks

Comments

  • edited May 2013
    kalo gw kagak salah ...
    itu yg langsung bikin kagak respon itu gara-gara sleep nya

    sepenangkapan gw dari yg elo mau, itu harusnya bukan pake sleep, tapi timer
    http://docs.oracle.com/javase/6/docs/api/javax/swing/Timer.html
    http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html
  • ooo, gtu yah. saya coba pake timer. makasih masukannya mas :)


    NB : TAPI, waktu coding diatas dijalankan GUI-nya emang gak respon TAPI output di netbeans jalan mas [gak ada error], per 3 detik hasil println wait > done > wait > done > dst. muncul :D
  • GUI nya mau nampilin apa? dah dipisah dari thread EDT?
  • GUI-nya mau nampilin button2 command dan [textfield] hasil komunikasi dengan device menggunakan komunikasi serial mas/bapak NEWUSER. THREAD-nya dalam class yg berbeda dengan class GUI :)

    saya msh belajar soal EDT [The Event Dispatch Thread]
  • edited June 2013
    Biasanya bikin thread biasa terus dijalanin di dalam method run nya thread tsb kalo mo pisahin dari thread EDT. Contoh:
    // ini masih di thread EDT
    Cursor cursor = new Cursor(Cursor.WAIT_CURSOR);
    this.setCursor(cursor);
    progressBarServer.setIndeterminate(true); // misal ada progress bar nya
    // disable menu2
    menuTools.setEnabled(false);
    menuHelp.setEnabled(false);
    menuFile.setEnabled(false);
     
    // Thread baru saat untuk lepas dari thead EDT
    new Thread() {
    @Override
    public void run() {
    sms.koneksiSms(); // contoh proses yang memerlukan waktu, kalo gak dipisah dari thread EDT bakal ngeblock/freeze/hang GUI, makanya di letakkan di thread terpisah.
    progressBarServer.setIndeterminate(false);
    setCursor(null);
    menuTools.setEnabled(true);
    menuHelp.setEnabled(true);
    menuFile.setEnabled(true);
     
    //jk berhasil konek :
    if (sms.koneksiSMS == true) {
    m.start(); // misal ada thread monitoring di sini, di kasusmu tiap 3 detik.
    menuItemConnect.setEnabled(false);
    buttonConnect.setEnabled(false);
    menuItemDisconnect.setEnabled(true);
    buttonDisconnect.setEnabled(true);
    }
    }
    }

    contohnya bukan source lengkap, tapi setidaknya kamu jadi ada bayangan untuk melepas proses yang membutuhkan waktu dari thread EDT, karena bila tidak dipisah akan membuat GUI freeze.
  • oke mas, makasih :)

    CASE CLOSE
Sign In or Register to comment.