Geniş Ekran Modu Otomatik Ekran Boyutu Font Boyutunu Azalt Font Boyutunu Azalt Font Boyutunu Normal Yap Yazdır

Java'da Görüntü Haraketleri

Java'da resim nesnelerinin nasıl haraket ettirildiğine dair bir örnek. Zamanlayıcı kullanımı ve klavyeyi dinlemeye ilişkin kodlar da içeriyor.

Java'da Görüntü Haraketleri

Java'da bir resmin haraeket etmesi, daha önce belli bir konuma yerleştirilmiş bir resmin daha sorna başka bir noktada çizilmesinden ibaretti. Hareketi tetikleyen iki neden olabilir : ya kullanıcı fare veya klavye gibi bir girdi aygıtıyla belli bir değişikliğe neden olur ya da yer değişikliği uygulamanın içinden bir zamanlanlayıcı tarafından gerçekleştirilir.

Olay (Event) Sonucu Resimde Yer Değişikliği

Fare ve klavye kaynaklı değişiklikle, bir olayın dinlenmesi, o olay karşısında konumu belirleyen değişkenlerin değiştirilmesi ve daha sonra resmin tekrar çizilmesinden ibarettir. Örneğitn bir tuşa basıldığında

  public void keyPressed(KeyEvent e){
    int keyCode=e.getKeyCode();
    if(keyCode==KeyEvent.VK_LEFT){
      x1--;
      repaint();
    }else if(keyCode==KeyEvent.VK_RIGHT){
      x1++;
      repaint();
    }else if(keyCode==KeyEvent.VK_UP){
      y1--;
      repaint();
    }else if(keyCode==KeyEvent.VK_DOWN){
      y1++;
      repaint();
    }
  }

biçiminde bir işlem yapılabilir. Burada x1 ve y1 değişkenleri ok tuşlarına göre yeni bir değer almaktadır. Her değişiklikten sonra repaint() yöntemiyle çizimin tekrar yapılması gerekir.

 Zamanlayıcı (Timer) Sonucu Resimde Yer Değişikliği

Hareket değişikliği, belli bir zamana bağlı olarak yapılabilir. Örneğin bir resim 100 milisaniyede bir x ve y yönünde birer pixel artırmak için

    java.util.Timer t=new java.util.Timer();
    TimerTask task=new TimerTask(){
      public void run(){
        x2++;
        y2++;
        repaint();
      }
    };
    t.schedule(task,0,100);  

şeklinde bir kod yazılabilir. Burada Timer nesnesine konum değişikliği yapıp yeniden çizim yapılmasını sağlayan TimerTask örneği schedule() yöntemiyle veriliyor.

Java'da Görüntü Haraketleri

Hem olayla hem de zamanlayıcıyla hareket eden iki resmi içeren bir örnek :

package com.godoro.samples.awt;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class ImageMoveCanvas
  extends Canvas
  implements KeyListener
{  
  private Image image1;
  private Image image2;
  private int x1=0;
  private int y1=0;
  private int x2=50;
  private int y2=50;   
 
  public ImageMoveCanvas(Image image1,Image image2){
    this.image1=image1;
    this.image2=image2;     
    addKeyListener(this);
    java.util.Timer t=new java.util.Timer();
    TimerTask task=new TimerTask(){
      public void run(){
        x2++;
        y2++;
        repaint();
      }
    };
    t.schedule(task,0,100);           
  }
  public void paint(Graphics g){
    g.drawImage(image2,x2,y2,this);
    g.drawImage(image1,x1,y1,this);   
  }       
  public void keyPressed(KeyEvent e){
    int keyCode=e.getKeyCode();
    if(keyCode==KeyEvent.VK_LEFT){
      x1--;
      repaint();
    }else if(keyCode==KeyEvent.VK_RIGHT){
      x1++;
      repaint();
    }else if(keyCode==KeyEvent.VK_UP){
      y1--;
      repaint();
    }else if(keyCode==KeyEvent.VK_DOWN){
      y1++;
      repaint();
    }
  }
  public void keyReleased(KeyEvent e){}
  public void keyTyped(KeyEvent e){}     
 
  public static void main(String[] args){
    Frame frame=new Frame();
    frame.setBounds(10,10,300,300);
    Toolkit toolkit=Toolkit.getDefaultToolkit();
    String folder="E:GoyaJavaDeeplyJavaBookJavaBooktest";
    Image image1=toolkit.getImage(folder+"cat.gif");
    Image image2=toolkit.getImage(folder+"mouse.gif");
    ImageMoveCanvas canvas=new ImageMoveCanvas(image1,image2);       
    frame.add(canvas);
    frame.setVisible(true);
  }
 
}

 

Kaynak www.godoro.com/Portal/Content/Article/ArticleViewPage.aspx

Bu içerikle ilgili henüz herhangi bir yorum yapılmamıştır. Bu içerikle ilgili Yorumunuzu eklemek için burayı tıklayınız.

Java Application Örnekleri

Java'da Animasyon Örneği
Java'da bir grup resmin artarda hızla gösterilmesi esasına dayanarak canlandırma yapan bir örnek. Re...
Java'da Analog Saat Örneği
AWT kütüphanesi kullanılarak yapılan Java'da analog bir saat örneği anlatılıyor
Applet + Java Nesnesi
Applet içerisinde Java Nesnesinin kullanımı
Mysql'e Bağlanmak
İngilizce bir makale
2 Boyutlu Dönen Kare
Applet Uygulaması
Masaüstü Takvim Uygulaması
İnglizce bir makaledir.
Sayı Tahmin Oyunu
NetBeans Kullanılarak yapılmış, Tarayıcı üzerinden çalışan Applet örneği

    Ödev Gönder | İncelenmeyi Bekleyen Ödevler | Uygulama Resimleri | Uygulama Resmi Gönder | İnternet Üzerinden Sınav | Test Sorusu Gönder | Sınıf Karneleri | Anketler | Linkler
    www.dijitalders.com

    bilgidijitalders.com
    Bu sayfalar en iyi 1024 x 768 ekran çözünürlüğünde görüntülenir.
    Site içerikleri, site kullanıcıları tarafından yollanan içeriklerdir. Her hangi bir içeriğin lisanslı yahut şahsınıza ait olduğunu tarafımıza iletirseniz gerekli düzenlemeyi yapacağız. Kullanılan içerikler, siteyi kullanan öğrenciler ve araştırmacılar için kolaylık sağlamak amacıyla oluşturulmuştur.
    Sayfada HATA! Olduğunu Düşünüyorsanız | Sık Kullanılanlara Ekle | www.dijitalders.com'u Ana Sayfam Yap | Web Tasarımcıya e-Posta
    Bu site 877,484 kişi tarafından ziyaret edilmiştir.