Skip to main content

Java Programalama : Gülen Smiley

Bugün sizlere eğlenceli bir o kadarda öğretici bir uygulama paylaşmak istiyorum.  Bildiğiniz gibi Java  uçsuz bucaksız bir deniz. İstediğiniz herşeye bir çözüm bulmak Java’da mümkün. Fakat bu sonsuzluk Java’yı öğrenmeyi zorlaştırmıyorda değil. Standart Java öğrenerek Java biliyorum  diye ortada gezinen o kadarda çok insan varki. Okullarda bize öğretilen sadece Standart Java ve Nesneye Yönelik Programlama  kavramı malesef. Gerisini getirmek bize kalıyor. Java biliyorum demek için Standart Java öğrendikten sonra çok şey daha öğrenmek gerektiğini düşünüyorum ve bunun içinde çalişmalarıma devam ediyorum 🙂  Takip ettiğim kitapların bir tanesinde bölüm sonu uygulaması olarak  yapılması istenen bir soruyu paylaşmak istiyorum.

Uygulamada Java grafik arayüzünü (GUI)  kullanarak bizde bir gülen smiley yapılması isteniyor.  Tam olarak aşağıda ki fotoğrafa benzer bir çıktı üretilmemiz isteniyor.


Bu uygulamayı yapabilmek için bilmemiz gerekenler hakkında kısaca tartışmak istiyorum.  Bu uygulamayı tam olarak gerçekleştirebilmek için Java’nın bize sunduğu sınıflardan yararlanacağız. Bu sınıflardan bir tanesi COLOR sınıfı.  Color sınıfına kısa bir göz atarsak  :

 

Color sınıfını kullanabilmek için program başında bu sınıfı çalışmamıza import etmemiz gerekmektedir.  Bu sınıfı  import java.awt.color;  diyerek çalışmamıza ekleyebiliriz.

Color sınıfı bize bir takım hazır renklerle geliyor, fakat kendimizde renk tanımlamaları yapabiliriz.   Mesala hazır renklerden birini kullanmak istersen Color.RED diyerek  kırmızı rengi kullanabiliriz.   Aynı şekilde Color(120,250,254) ;  gibi bir ifade ilede renk tanımlayabiliriz.  Bu nerden  çıktı derseniz , bütün programlama dillerinde olduğu gibi , yada söyle diyelim gerçek hayatta da olduğu gibi bütün renkler üç ana renk olan Kırmızı (R), Yeşil (G), Mavi (B) renklerinin bir araya gelmesiyle oluşurlar. Hepsinden belli bir miktar karıştırarak çok değişik renkler oluşturabiliriz.   Bu R,G,B ifadeleri 0-255 arasında değerler alırlar.  Kısaca toparlamak gerekirse java’da color sınıfınınn başlığu aslında şu şekilde tanımlanmıştır. public color( int  red , int green, int blue)  bu tanımlamayı göze alarak istediğimiz değerleri  verir, veya direk hazır renklerden bir tanesini  yukarıda bahsettiğim şekilde kullanabiliriz.

Bu uygulamada kullanacağımız diğer bir sınıf ise Graphics sınıfıdır. Bu sınıfı kullanarak ekrana bir takım Geometrik ifadeler çizdirebiliriz ( Kare,Dikdörtgen,Daire,Elips vs vs.).  Gülen surat ifadesini göz önüne alacak olursak ekrana   bolca daire çizdireceğimiz kesin 🙂  Yine bu uygulamada Java’nın  Swing  bileşenlerini kullanacağız ki  sadece bu konuda bir kitap bile yazılabilir. Swing konusunda eksiğiniz varsa Şadi Evren Şeker hocamızın bu konuda yazdığı makaleyi öncelikli olarak buradan okumanızı öneririm.

Artık kodlara geçebiliriz.   Kodla ilgili açıklamaları  kodun içinde açıklama satırı şeklinde bulabilirsiniz.

 

 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gulenyuz;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
/**
 *
 * @author AYTAÇ CİCİ 
 * 3 Ekim 2012 
 * www.aytaccici.com 
 */
public class GulenYuz extends JPanel {
 
 
 
    /** Grafik arayüzü kullanmak için paintComponent adlı metod
   overload edilmiştir. Bu konuda anlasılmayan yer varsa yazdıda belirtiğim
   Şadi Evren Şeker makalesi okunmalıdır. */
    @Override
    public void paintComponent(Graphics g){
    super.paintComponent(g);    
    // Şimdi yüzü çizmeye başliyoruz.
    g.setColor(Color.YELLOW);
    // Çizgi Rengi Sarı olarak belirlendi.
    g.fillOval(10, 10, 200, 200);
    // içi dolu (fill) bir oval ciziyoruz. Yarı caplarini aynı vererek 
    // seklin tam bir oval olmasını sağladık .
    g.setColor(Color.RED);
    // Gözleri kırmısı olacak :) Makine bozuk ne yapalım. =))Belkide GS'li
    g.fillOval(55, 65, 30, 30);
    // Yarı capları 30 verdik cunku gözlerin büyüklüğü cokta fazla olmasın 
    // X noktası 55 y noktası 65 . Ekranı bir koordnat düzlemi gibi düşünün.
    // Şimdi ikinci gözü çizelim.
    g.fillOval(135, 65, 30, 30);
    // Bir tek X noktasının değiştiğine dikkat edelim ! 
    // AĞIZ 'ı çizmeye başayalim. Ağzımızı düşünecek olursak tam bir ovallık yok.
    g.setColor(Color.BLACK);
    g.fillOval(50, 110, 120, 60);
    /**/
    g.setColor( Color.YELLOW );
    g.fillRect( 50, 110, 120, 30 );
    g.fillOval( 50, 120, 120, 40 );
    // Ekran Alanını belirledik
    g.setColor(Color.BLACK);
    g.drawString("Aytaç Cici / aytaccici.com", 10, 200);
    }
}

Şimdi test sınıfımızı koyalım

 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gulenyuz;
import javax.swing.JFrame;
 
/**
 *
 * @author AYTAÇ CİCİ 
 * 3 Ekim 2012 
 * www.aytaccici.com 
 */
public class GulenYuzTest {
 
 
    public static void main(String[] args) {
 
        GulenYuz gulenYuzum = new GulenYuz();
        JFrame  pencere = new JFrame();
        pencere.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // X'e basıldığında uygulamanın sonlanması için
        pencere.add(gulenYuzum);
        // Penceremize gulen suratımızı ekledik.
        pencere.setSize(230, 250);
        pencere.setVisible(true);
        // Uygulamanın pencere boyutu.
    }
 
}

Uygulamanın kaynak kodlarının Netbeans projesi seklinde buradan indirebilirsiniz.

Başka bir örnek uygulamada görüşmek dileğiyle .

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Aytaç Cici

İstanbul Üniversitesi Bilgisayar Mühendisliği mezunu bir Yazılım Geliştirici. Çeşitli zamanlarda Java, PHP, C# ve Delphi gibi diller kullanarak yazılım geliştirmiştir. Bir dönem SEO alanında da çalışmalar yapmıştır.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Email
Print