Java'da Olay İşleme: Bu Nedir ve Nasıl Çalışır?
Yayınlanan: 2020-03-21Windows için Java uygulaması da dahil olmak üzere, grafik kullanıcı arabirimi veya GUI tabanlı herhangi bir program, olaylar tarafından yönlendirilir. Java uygulaması gibi bir programın kullanışlı olması için, kullanıcıdan gelen komutlara veya girdilere yanıt vermesi gerekir. Java uygulamaları, kullanıcı eylemlerini yakalamak için olaylara sahiptir. Java'da olay işlemeyi tartışmadan önce olayları tartışarak başlayalım.
İçindekiler
Etkinlik Nedir?
Olaylar her programlama dilinde aynı anlam ve öneme sahiptir. Bunlar, kullanıcı tarafından kontrol edilen ve uygulamanızın, farklı kullanıcı eylemlerine yanıtını kaydetmek için önceden tanımlanmış koşula uygun olarak davranmasını sağlayan dış etkilerdir. Bir olay, GUI içinde bir değişiklik meydana geldiğinde canlanan bir nesne olarak bile adlandırılabilir.
Java'daki olaylara örnek olarak, karakterlerin veya metnin yazılması, bir birleşik giriş kutusuna tıklanması, bir düğmeye tıklanması veya kullanıcı tarafından yapılan diğer herhangi bir eylem sayılabilir. Bu tür herhangi bir eylem, bir olayı tetikler ve bu, o olayla ilgili olay nesnesinin oluşturulmasıyla sonuçlanır.
Örneğin, bir kullanıcı bazı veriler girerse (bir olayı tetikleyen kullanıcı eylemi), uygulama bir iletişim kutusu koyarak veya bilgi görüntüleyerek (olay nesnesi) bir çıktı üretir. Olayla ilgili bu davranışlar, Java Olay İşleme Mekanizmasının bir parçasıdır ve Swing GUI kitaplığında bulunur. Her olayın kaynağının ve olay dinleyicisinin bağlantılı olması gerektiğine dikkat etmek önemlidir. Durum böyle değilse, bir olayın tetiklenmesi herhangi bir işlem sağlamayacaktır.
Bir Program veya Uygulamanın Neden Olay Odaklı Olması Gerekir?
Olay işleme resme girmeden önce, bir programın belirli bir zamanda ne yaptığını bilmek için tüm kullanıcı bilgilerini toplaması gerekiyordu. Bu, çalıştırıldıktan veya başlatıldıktan sonra bir programın her zaman kullanıcının bir şeyler yapmasını bekleyen büyük bir tekrar döngüsünde olduğu anlamına gelir.
Bu nedenle program, bir düğmeye basmaktan kaydırıcı hareketine kadar herhangi bir eylem arıyordu. Kullanıcı tarafından bir şeyler olduğunu öğrendikten sonra, uygun yanıtı vermeye kendini hazırladı. Buna oylama denir. Oylama işi bitirse de, çoğu zaman, çok fazla yönetilemez ve zaman alıcı bir görev olarak görülür.

Okuyun: Java Geliştirici Mülakat Soruları ve Cevapları
Günümüz uygulamaları için kullanmayı düşünürsek, gerçekten gereksinimlere uymuyor. Yoklamayı modern uygulamalar için uygunsuz kılan iki temel neden vardır: Yoklama, olayla ilgili tüm kodu büyük tekrar döngüsüne yerleştirir ve bu konum içinde gerçekleşen etkileşimler çok karmaşıktır. Ayrıca, yoklama, bir programı hiç bitmeyen bir döngüye sokar ve bu da, kullanıcıdan herhangi bir eylem garantisi gelmeden CPU döngülerinin tükenmesine neden olur.
Soyut Pencere Araç Takımı veya AWT devam etti ve yukarıda tartışılan sorunu çözmek için farklı bir çalışma modeliyle ilişki kurdu. Bu yeni model olay güdümlü programlamadır. AWT ile, programın kullanıcı tarafından oluşturulan olaylara bakmasına gerek yoktur. Bu işi yapan Java çalışma zamanıdır. Bir olay gerçekleşir gerçekleşmez programı ima eder. Değerli bir kaynağı tükenmekten kurtarır ve kullanıcı etkileşimini daha iyi yönetir.
Java'daki Olay İşleyicileri nedir ve Nasıl Çalışırlar?
Şimdi ele almak üzere yola çıktığımız birincil konuyu tartışalım. Java'da olay işleme nasıl çalışır?
Daha önce belirtildiği gibi, olaylar, bir uygulamanın belirli bir şekilde davranmasını sağlayan kullanıcı eylemleri veya dış etkilerdir. Java'da, metin kutusu, düğme ve diğerleri dahil olmak üzere AWT bileşenleri, olayların oluşturulmasından sorumludur. Bir olay oluşturulur oluşturulmaz dinleyici onu ele alır ve uygun eylemi gerçekleştirir.

Java'da olay işleme dört öğeden oluşur. Bunlar olay işleyicileri olarak bile adlandırılabilir.
1. Olay kaynağı : Bir olay oluşturan olay kaynağı çoğunlukla bir AWT bileşenidir. Olay oluşturmada herhangi bir rolü olabilecek veya olmayabilecek bileşenler hakkında bilgi edinmek için java.awt.component komutunu çalıştırabilirsiniz . Bileşenler, orijinal kaynak sınıfın alt sınıfıdır. Olay kaynakları, metin kutularından ve birleşik giriş kutularından düğmelere ve daha fazlasına kadar her şey olabilir.
Okuyun: Java'da MVC Mimarisi
2. Olay sınıfları : Java'da bunlar, olayların oluşturulmasıyla ilgisi olan hemen hemen her bileşeni açıklayan sınıflardır. Bunlara olay türleri de denir. İşte en yaygın olay sınıflarından birkaçı:
- ActionEvent : Bu olay sınıfı veya olay türü, bir düğme veya liste öğesi gibi bir grafik öğenin tıklanmasını içeren bir olayı temsil eder. Bu sınıfla ilgili dinleyici ActionListener'dır.
- KeyEvent : Bu olay sınıfı, bir tuşa basılmasını ve bırakılmasını içeren bir olayı temsil eder. Bu sınıfla ilişkili dinleyici KeyListener'dır.
- ContainerEvent : Bu olay türü, GUI kapsayıcısında gerçekleşen bir olayı temsil eder. Bu sınıf, kullanıcı eyleminin GUI'den nesne(ler) eklemeyi veya kaldırmayı içerdiği herhangi bir olayla ilişkilidir. Bu sınıf için ilgili dinleyici ContainerListener'dır.
- MouseEvent : Bu sınıf, farenin tıklanmasını veya basılmasını içeren tüm olayları temsil eder. Bu sınıfın dinleyicisi MouseListener'dır.
- WindowEvent : Bu olay sınıfı veya türü, bir pencereyle ilgili herhangi bir eylemi içeren olayları temsil eder. Bir pencereyi kapatmak, etkinleştirmek veya devre dışı bırakmak bu sınıfa girer. Bu sınıf için ilgili dinleyici WindowListener'dır.
3. Olay Dinleyicileri : Bunlar, farklı uygulamalı sınıflarda kullanılabilecek çeşitli yöntemler sağlayan Java arayüzleridir. Olay dinleyicilerinin işi, olayları dinlemeyi ve daha sonra gerçekleştiklerinde onları uygun şekilde işlemeyi içerir. Java'daki hemen hemen her bileşenin, o bileşenin oluşturduğu herhangi bir olayı işleyen özel bir dinleyicisi vardır. ActionListener, listeleri, düğmeleri, metin alanlarını ve menüleri içeren olayları işler.
4. Olay Bağdaştırıcıları : Bir program, dinleyicinin geçersiz kılabileceği çok fazla soyut yöntem sunuyorsa, onu derlemek zorlaşabilir. Örneğin, bir çerçeveyi kapatmak istiyorsak, geçersiz kılmamız gereken yedi WindowListener soyut yöntemi vardır. Karmaşıklığı ve ağır kodlamayı azaltmak için Java, olay bağdaştırıcılarına sahiptir. Olay bağdaştırıcıları zaten geçersiz kılınmış soyut yöntemlerdir.
Çözüm
Birden fazla olay kaynağının ve dinleyicinin birbiriyle etkileşime girebileceğini hatırlamak önemlidir. Böylece aynı sınıfa ait birden fazla olay tek bir dinleyici tarafından işlenebilir. Bu, bir dinleyicinin benzer eylemleri gerçekleştiren aynı bileşenleri içeren tüm olayları işleyebileceği anlamına gelir. Benzer hatlarda, tek bir olay, ancak programın tasarımı buna izin veriyorsa, birden fazla dinleyici tarafından işlenebilir.

Mantıklı?
Evet?
Numara?
Java'da olay işleme hakkında kapsamlı bir oturum hakkında bilgi edinmek için bizimle iletişime geçin. Pişman olmayacaksın!
Web geliştirme için Java hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saatlik zorlu eğitim, 9+ proje ve ödev sunan Tam Yığın Yazılım Geliştirme PG Diplomasına göz atın. IIIT-B Mezunları statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.