NESNE YÖNELİMLİ PROGRAMLAMA – HAFTA # 10 Yrd.Doç.Dr.Hacer Karacan İçerik • Grafik Kullanıcı Arayüzü Uygulamaları ▫ AWT, Swing ▫ Arayüz Yerleşim Düzeni ▫ Temel GKA Bileşenleri • Olay Yönetimi ▫ ▫ ▫ ▫ Olay Dinleyiciler Olay Yönetimi Süreci Adapter Sınıfı Bileşenler ve Olay Yöneticileri Grafik Kullanıcı Arayüzü Uygulamaları • Makinelerle kullanıcı arasında etkileşimi sağlayan birimlere kullanıcı arayüzü denilmektedir. • İlk başlarda sadece klavye ile başlayan bilgisayar kullanıcı arayüzleri, ekran fare ve sonrasında grafik bileşenlerin kullanımıyla kullanıcıya son derece kolay kullanım imkanları sunmaktadır. • Sun java ile geliştirilen yazılımlar için iki grafik kullanıcı arayüzü kütüphanesi sunmaktadır: ▫ AWT (Abstract Window Toolkit) ▫ Swing AWT (Abstract Window Toolkit) • Java programlama dilinin, platformdan bağımsız, görsel kullanıcı arayüzü üretimini sağlayan araç kütüphanesidir. • En büyük dezavantajı, kullanıldığı platformda, grafik tabanlı bileşenlere doğrudan aracı katmanlar bulunmadan ulaşmasıdır. ▫ Her platformda kullanılan farklı grafik bileşenlerinin ortak özellikleri kullanılmış, platformdan platforma değişebilen farklılıklar gözardı edilmiş. ▫ “bir kere yaz, her yerde çalştır” sloganına uymaz. Örn. UNIX sisteminde çalışan bir program, MAC platformunda çalıştırıldığında farklı sonuçlar doğurabilir. AWT (Abstract Window Toolkit) SWING • Java 2 platformu ile birlikte AWT yetersiz görülmüş ve çok daha geniş ve gelişmiş özelliklere sahip Swing kütüphanesi sisteme eklenmiştir. • Başlarda işletim sisteminin kullandığı donanım grafik hızlandırma araçlarını kullanmadığından yavaşlığı ile eleştirilere hedef olmuştur. ▫ Java 1.4 ile donanım hızlandırmayı kullanmaya başlamıştır. • AWT halen Swing’in bir alt katmanında temel iki boyutlu grafik işlemlerinde kullanılmaya devam etmektedir. SWING Arayüz Yerleşim Düzeni • Bir grafik kullanıcı arayüz uygulaması yapmadan önce bileşenler arasındaki şu ilişkiler dikkate alınmalıdır: ▫ Bileşenler hangi kapsayıcı bileşenlerin içerisine yerleşebilir ▫ Kapsayıcı bileşenlerin seviye ve türleri ▫ Yerleşim düzenleyiciler ve bunların türleri Temel GKA Bileşenleri Üst Düzey Kapsayıcı Bileşenler Orta Düzey Kapsayıcı Bileşenler Orta Düzey Kapsayıcı Bileşenler Atomik Bileşenler Yerleşim Bileşenleri Border Layout Border Layout Flow Layout Card Layout Grid Layout Olay Yönetimi Olay Dinleyiciler Olay Dinleyiciler Olay Dinleyiciler Olay Dinleyiciler Olay Dinleyiciler Olay Dinleyiciler Olay Dinleyiciler Olay Dinleyiciler Olay Dinleyiciler Olay Dinleyiciler Olay Dinleyiciler Olay Yönetimi Süreci Olay Yönetimi Süreci Olay Yönetimi Süreci Adapter Sınıfı • Olay adaptörleri, dinleyicilerin tüm metodlarını içlerinde barındıran sınıflardır. • Var olan bir arayüzü, istemcinin önceden kullandığı arayüze uyarlar. Adapter Sınıfı • Adapter sınıfları, arabirim metodlarının sadece küçük bir kümesine ihtiyaç duyduğunuzda kullandığınız ve yazmanız gereken kod miktarını azaltan sınıflardır. • Her adapter sınıfı ilgili arabirimi (veya arabirimleri) tam olarak gerçekleştirir. Böylece, ilişkili metodların küçük bir kümesine ihtiyaç duyarsanız, sadece kullanmak istediğiniz metodu doldurarak kullanabilirsiniz. MouseListener mouseListener = new MouseAdapter() { public void mousePressed(MouseEvent mouseEvent) { System.out.println("Basildi: " + mouseEvent); } public void mouseReleased(MouseEvent mouseEvent) { System.out.println("Birakildi: " + mouseEvent); } }; • Bu kod MouseListener yaratacaktır. Ancak, tüm metodları gerçekleştirmek yerine, MouseAdapter yardımıyla sadece ihtiyaç duyduğumuz metodlarını gerçekleştirmemiz mümkün olacaktır. Bileşenler ve Olay Yöneticileri • Olay yönetimleri yazılım geliştirme ortamlarınca (IDE) otomatik olarak arka planda tanımlanmaktadır. • Olay yönetiminin elle yapılması tercih edilmez ama kod hakimiyeti açısından programcı işlemin nasıl yapıldığını bilmelidir. • Olay yönetiminin ilk adımında olayları yönetebilecek bir bileşene ihtiyaç duyulur. ▫ Bileşen Kullanıcıyla etkileşime geçebilen görsel nesne Bileşenler ve Olay Yöneticileri Bileşenler ve Olay Yöneticileri Bileşenler ve Olay Yöneticileri Özet • Program çalışırken kullanıcı tarafından gerçekleştirilen tüm hareketlere olay(event) denilir. • Kullanıcının fareyi hareket ettirmesi, tuşlara basması, bir butona basması, pencerenin kapatılması vb. • Olay yönetimi, görsel programlamanın olmazsa olmaz öğesidir. • Java’da bir olay gerçekleştirilirken 4 rol bulunmaktadır: ▫ ▫ ▫ ▫ Olay Kaynağı Olay Nesnesi Olay Dinleyicileri Olay İşleyicileri