11 Ocak 2019 Cuma

Awt EventQueue Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.awt.EventQueue;
Bu sınıf yerine SwingUtilities sınıfı da kullanılabilir. Bu sınıf içinde 4 tane priority queue bulunur. En yüksek öncelik sırasına ait event'ler bittikten sonra bir sonraki kuyruğa geçilir.
Kuyruklar şöyle.
private static final int LOW_PRIORITY = 0;
private static final int NORM_PRIORITY = 1;
private static final int HIGH_PRIORITY = 2;
private static final int ULTIMATE_PRIORITY = 3;
LOW_PRIORITY : Paint event'leri en düşük önceliğe sahiptir.
NORM_PRIORITY : invokeLater() ile çağrısı bu kuyruğa ekleme yapar.

constructor
Şöyle yaparız.
EventQueue queue = Toolkit.getDefaultToolkit().getSystemEventQueue();
invokeAndWait metodu - Runnable
Şöyle yaparız
EventQueue.invokeAndWait(new Runnable() {
  public void run() {
    ...
  }
});
invokeLater metodu - Runnable
Örnek
Şöyle yaparız.
EventQueue.invokeLater(new Runnable() {
  public void run() {
  ...
  }
});
Örnek
AWT veya Swing uygulamasını başlatmak için şöyle yaparız.
public static void main(String args[]) {

  EventQueue.invokeLater(() -> {
    MyJFrame app = new MyJFrame();
    app.setVisible(true);
  });
}
push metodu
Şöyle yaparız.
EventQueue eventQueue = Toolkit.getDefaultToolkit().getSystemEventQueue();
eventQueue.push(new MyEventQueue());

MyEventQueue extends EventQueue {
  public void postEvent(AWTEvent theEvent) {
    System.out.println("Event Posted");
    super.postEvent(theEvent);
  }
}
postEvent metodu
Bu metod ile öncelik tanımlamak mümkün. Şöyle yaparız.
EventQueue queue = Toolkit.getDefaultToolkit().getSystemEventQueue();
Runnable runnable =  ...;
PeerEvent event = new PeerEvent(this, runnable, PeerEvent.ULTIMATE_PRIORITY_EVENT);
queue.postEvent(event);

Hiç yorum yok:

Yorum Gönder