Sonra temel grafik ortamı oluşturma ve animasyon motoru, Etkileşim fare olaylarını modeli birleşme yoluyla temellerini tanıtacak.
Teknik-ecek var olmak-bir olay veya olay ne zaman fare ile etkileşim oluşturmak için. Bu olay herhangi bir programlama modülleri tarafından yakalanmış olacak, Bu işlem ve eylem çeşit oluşturmak.
Bu olayların nasıl anlamak için ilk adımdır ve, posteriormente, Biz-ecek birleştirmek daha ayrıntılı eylemleri. Varlık türü olayı ve bu yaptığımız ekrandaki konumunu belirlemek için yeterli zamanı.
La olaya dayalı programlama bir programlama paradigması hangi iki yapısı ve programların uygulanması sistemde oluşan olaylar saptanır, kullanıcı tanımlı veya kendilerini neden.
Olaya dayalı programlama anlamak için, Biz bu ne değildir için karşı: Süre sıralı programlama (o Yapısal) ne-ecek var olmak program akışı programcı tanımlar olduğunu, olaya dayalı programlama-ecek var olmak kullanıcı - ya da hangi program akışını doğrudan programı - başvuru yapıyorsa. Her ne kadar sıralı programlama orada-ebilmek var olmak bir dış program Ajan müdahalesi, Programcı belirlediği bu müdahaleler ortaya çıkar, değil, herhangi bir zamanda olaya dayalı programlama durumunda olabilir.(Içinde)
Olay dinleyicisi arabirimini uygulayan
Sistem hayata geçirecek olayların grafik kitaplığı için benzersiz bir sınıf değil başlangıçta bir karmaşık hale modeli. Biz yapacağım ilk şey-ecek var olmak-veritabanı bakımından sorumlu sınıfının değiştirmek ve grafik nesneleri boyamak için: “Yazı tahtası”. Etiketi ile gösterir “uygulayan” Bu sınıf için fare dinlemek mümkün.
genel sınıf Yazı tahtası extends Canvas uygulayan MouseListener{
JAVA kütüphaneleri bu arabirimini uygulayan dosyaları bulmak için yeni bir çağrı eklemek için bize yeni arayüzü gerektirmektedir. Özel amaçlı sözcük ile yapıyoruz “import”.
import java.awt.event.MouseListener;
Bu arabirimde tanımlanan yöntemleri uygulamak için gerekli olacak, hem de sınıf ithal “MouseEvent” Bu yöntem için parametre olarak geçti. Şu an için sadece biz onlara herhangi bir işlevsellik ekleme olmadan ilan edecek.
public void mouseClicked(MouseEvent arg0) { // Bütün yöntemi otomatik olarak oluşturulan saplama } public void mouseEntered(MouseEvent arg0) { // Bütün yöntemi otomatik olarak oluşturulan saplama } public void mouseExited(MouseEvent arg0) { // Bütün yöntemi otomatik olarak oluşturulan saplama } public void mousePressed(MouseEvent arg0) { // Bütün yöntemi otomatik olarak oluşturulan saplama } public void mouseReleased(MouseEvent arg0) { // Bütün yöntemi otomatik olarak oluşturulan saplama }
Olay günlüğü
Bu gerçekleştiğinde, bir fare olayı kaydeder. Sınıf veya bir yöntem Oluşturucu çağrısı dahil edilecek “addMouseListener” dinleyicinin eklemek istediğinizi belirtmek için.
Geçirilen parametre için fare dinler sınıf ismi. Bizim durumumuzda bu durumda tavsiye olacaktır bu olay kaydı aynı sınıfta olduğunu gösterir. Bu etiket ile üstlenmek mi “Bu“.
public Yazı tahtası(){ Bu.addMouseListener(Bu); }
Olay yönetimi
Biz birkaç fare yere basıldığında Ekran konumunu koordinatlarını saklayan değişkenleri tanımla
Özel int lastX = 0; Özel int lastY = 0;
Önceki işlevlerinden uygulayacak, fare düğmesine basıldığında her zaman örneğin yürütüldüğü “mouseClicked”. Şu anda biz hangi sadece koordinatları almak preslenmiş olacaktır., Biz ek işlevler ile program karmaşık, ancak.
Bu koordinatlar işleve iletilen olay ve nesne vardır, nesne “MouseEvent”
public void mouseClicked(MouseEvent arg0) { lastX = getX arg0.(); lastY = getX arg0.(); }
Böylece nerede fare basılıştan konumunda bir şey boya yöntemi çizmek grafikler ekran sorumlu değiştirir. Bu grafik olarak biz ele sahip ve fare olayı işlenen doğrulamak için bize izin verir en basit bir uygulamasıdır.
public void paintOffScreen(Graphics g){ Numaralandırma enum BD. öğeleri =(); Nesne ob; Süre(enum.hasMoreElements()){ OB enum. nextElement =(); if(OB instanceof SimpleDrawable){ ((SimpleDrawable) OB).paint(g); } } paintMousePosition(g); }
Bu işlevi için sorumlu “paintMousePosition”, olan uygulama grafik olarak fare konumuna depolanmış koordinatlarını yazmak için mi, işlevi aracılığıyla “İpli”.
private void paintMousePosition(Graphics g) { g.drawString("("+lastX ","+lastY ")", lastX, lastY); }
Olmalıdır bağlı Yorum yazmak için.