KOD DÜNYAM
kod dünyam

Her Küçük Projenin Kalbinde Doğmayı Bekleyen Büyük Bir Proje Vardır.. (KodDünyam)

30 Ocak 2017 Pazartesi

0 JFrame Pencere Oluşturma (JAVA)

JAVA JFrame
       
Java swing kütüphanesinde bir pencere oluşturmak için kulanılacak ana sınıf JFrame'dir. 
Genel tasarım tarzı bir frame - üzerine istenilen sayıda panel - ve paneller üzerine gerekli bileşenler eklenerek yapılır.


JAVA JFrame Pencere açma
 

Öncelikle kısa bir kod verilsin. Altında satır satır açıklaması yapılacaktir. 


 
   
  import javax.swing.JButton; 
  import javax.swing.JFrame; 
   
  public class FrameDemo extends JFrame 
  { 
   
   public FrameDemo() 
   { 
    this.setTitle("FrameDemo Test"); 
    this.setSize(640 , 480); 
    this.setLayout(null); 
    this.setVisible(true); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
   } 
   
    
    
   public static void main(String[] args) 
   { 
    new FrameDemo(); 
   } 
   
  } 
  

Oluşturulan sınıf JFrame sınıfından türetilmiş olduğu için bir frame 'e ait tüm özellik ve metodları miras alır. Böylece kurucu metod çağrıldığında yeni bir penceremiz olur. 

setTitle(String) metodu pencere başlığını , 
setSize(int,int) metodu pencere boyutunu , 
setLayout(Layout) metodu pencere yerleşim düzenini ayarlar.  

setVisible(boolean) true parametresi ile pencereyi görünür kılar. 
setDefaultCloseOperation() metodu ise varsayılan pencere kapanış davranışını ayarlar. 

JFrame sınıfı daha birçok metoda sahiptir. Bu metodlar kurucu tarafından varsayılan parametrelerle çağırılır. Örneğin setVisible() metodunun varsayılanı false 'dır. Yani biz true olarak değiştirmezsek sınıf üretilse dahi pencere görünmez. Başka bir örnek ise setLocation() metodu olarak verebilirim. Biz bu metodu çağırmadığımız halde penceremizin varsayılan başlangıç koordinatları (0,0) dır. 

Şimdi yukarıdaki örneğin daha ayrıntılı bir analizini yapalım. FrameDemo sınıfımız JFrame'den , JFrame'in ise Container sınıfından türediğini biliyoruz. Bu nedenle ayrıyeten bir Container nesnesi üretme ihtiyacı duymadık. Pencereye bir bileşen eklemek için kod aşağıdaki biçimde de tasarlanabilirdi.




 
   
  import javax.swing.JButton; 
  import javax.swing.JFrame; 
   
  public class FrameDemo extends JFrame 
  { 
          JButton buton1; 
         
   public FrameDemo() 
   { 
    this.setTitle("FrameDemo Test"); 
    this.setSize(640 , 480); 
    this.setLayout(null); 
   
                  buton1 = new JButton("Buton 1"); 
                  this.add(buton1);   // veya this.getContentPane().add(buton1); 
                  buton1.setBounds(10,20,100,40); 
   
   
    this.setVisible(true); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    
          } 
     
   public static void main(String[] args) 
   { 
    new FrameDemo(); 
   } 
  } 
  


Yukarıdaki kod pencereye bir buton nasıl eklenir sorusunun da cevabı. Fakat değinilecek asıl nokta butonun eklendiği konteyner. 

this.add() metodu pencereye bir bileşen eklemek için kullanılır. Object tipinde bir parametre alır. Daha ayrıntılı dökümantasyon için docs.oracle sitesini ziyaret edebilirisiniz. 
Bu metod ile aslında pencerenin top-level konteyner'ına bir bileşen eklenir. Bu konteyner'ın referansına erişmek için getDefaultContentPane() metodu kullanılabilir. 

Sınıfı JFrame sınıfından extend etmek zorunda değilsiniz. JFrame sınıfından bir nesne üreterek de pencerenizi oluşturabilirsiniz. 

Örnek : 

 
   
  import javax.swing.JButton; 
  import javax.swing.JFrame; 
   
  public class FrameDemo 
  { 
          JFrame pencere; 
          JButton buton1; 
         
   public FrameDemo() 
   { 
                  pencere = new JFrame("FrameDemo Test"); 
     
    pencere.setSize(640 , 480); 
    pencere.setLayout(null); 
   
                  buton1 = new JButton("Buton 1"); 
                  pencere.add(buton1);   // veya pencere.getContentPane().add(buton1); 
                  buton1.setBounds(10,20,100,40); 
   
   
    pencere.setVisible(true); 
    pencere.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    
          } 
    
   public static void main(String[] args) 
   { 
    new FrameDemo(); 
   }  
  } 
  


Artık this operatörünü kullanmadığımıza dikkat edin. 

Butonlar ayrı bir konu olarak incelenecektir. Ayrıca setLayout() metoduna null parametresini verdik. Yani herhangi bir yerleşim düzeni kullanmak istemediğimizi, bileşenlerin konumlandırmasını kendimizin yapacağını bildirdik.




KOLAY GELSİN.




  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

0 yorum:

Yorum Gönder

Freelance Programcı (Yazılımcı)

Serhat Şos

Profesyonel bir yaklaşım ve uygun fiyatlarla hizmet vermekteyim. Projelerinizi geliştiriyorum. Web App - Mobil App

TEKLİF VER

Popüler Yayınlar

Blogger tarafından desteklenmektedir.

TEKNOLOJİ HABERLERİ

Etiketler

Dikkat! Sitemiz Tüm Hızıyla Yenilenmektedir.

Yararlı Bilgilerden Sizde Yararlanın.
Takipte Kalın...

Yorum ve Görüşleriniz Bizim için Değerlidir.