Dalam sebuah pemrograman java biasa nya kita menemui kebutuhan suatu process dalam Thread. Berikut cara membuat sebuah Thread untuk dummy process sebagai contoh dengan pengembalian event message dari thread tersebut menggunakan event listener
1. Buat sebuah class event dari turunan class java.util.EventObject
2. Buat sebuah interface listener dari turunan class java.util.EventListener
public interface ProcessEventListener extends java.util.EventListener {
public void onDataCapture(ProcessEvent event);
}
3. Buat sebuah class thread dari turunan class Thread
public class ProcessThread extends Thread {
private List<ProcessEventListener> listeners = new ArrayList<ProcessEventListener>();
private boolean running = true;
public ProcessThread(){
}
public void run(){
while(running){
readData();
}
}
public synchronized void close(){
running = false;
}
public void addIPCameraListener(ProcessEventListener listener )
{
listeners.add(listener);
}
public void removeIPCameraListener(ProcessEventListener listener )
{
if(listener==null) listeners.clear();
else listeners.remove( listener );
}
private void onDataCapture(ProcessEvent event)
{
for(ProcessEventListener listener : listeners)
{
listener.onDataCapture(event);
}
}
private void readData(){
try{
onDataCapture(new ProcessEvent(this,"Message from Thread"));
Thread.sleep(1000);
}catch(Exception e){e.printStackTrace();}
}
}
4. Buat sebuah main class sebegai berikut
public class JavaSample {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ProcessThread process = new ProcessThread();
process.addIPCameraListener(new ProcessEventListener(){
@Override
public void onDataCapture(ProcessEvent event) {
String msg = (String) event.getData();
System.out.println(msg);
}
});
process.start();
}
}
Berikut hasil output dari main class diatas
run:
Message from Thread
Message from Thread
Message from Thread
Message from Thread
Message from Thread
Message from Thread
Message from Thread
Message from Thread
Message from Thread
Message from Thread
Message from Thread
Silahkan mencoba, Thx
Tidak ada komentar:
Posting Komentar