28 Nisan 2013 Pazar

Java Gui--6(getContentPane)




Content Pane


     Bir JFrame ile oluşturulmuş pencere aslında birçok katmandan oluşur. Bunlar İngilizcesi ile aşağıdaki gibidir:


  •         JFrame
  •          Root Pane 
  •          Menu Bar and Content Pane
  •         Glass Pane
     
     Öncelikle bir JFrame pencere oluşturduğumuzda yukarıdakilerin hepsini fark etmeden kullanmış oluyoruz.Burada JFrame ‘ e buton,label.. gibi componentler eklediğimizde aslında bunlar Content Pane ‘ e yerleştirilir.JFrame sınıfını kullanarak “add( ),setLayout( )” gibi metodlarla Content Pane ‘ e direk erişim sağlayabiliriz.Ancak bu şekilde JFrame sınıfını kullanarak bütün metodların Content Pane üzerinde etkili olması beklenemez.Örneğin Content Pane ‘in arka plan rengini “setBackground( )” metodu ile değiştirdiğimizde açılan pencerede hiçbir renk değişikliğinin olmayacağını görürüz. İşte bu gibi durumlarda "getContentPane( )" metodunu kullanabiliriz.Ayrıca bir component eklemek istediğimizde aşağıdaki gibi de ekleyebiliriz.


add(buton1);


Yerine


getContentPane.add(buton1);


Veya


Container con = getContentPane( );

con.add(buton1);

con.add(buton2);

con.add(buton3);


şeklinde kullanabilirsiniz.


Örnek Uygulama



     Bu uygulama ile Content Pane ‘ nin arka plan rengini değiştirmeyi deneyeceğiz.


1.Durumda  “setBackground(Color.yellow)” metodunu kullanarak pencerede herhangi bir değişikliğin olmadığını görüyoruz.


2.Durumda ise arka plan renginin kırmızı olduğunu görüyoruz.

import java.awt.Color;

import java.awt.Container;

import java.awt.FlowLayout;

import javax.swing.JButton;

import javax.swing.JFrame;



public class GetContentPaneDemo extends Jframe{



    Container con = getContentPane( );

    JButton buton = new JButton("Buton");



    public GetContentPaneDemo( ){

        super("Content Pane Demo");

        con.add(buton);

        con.setLayout(new FlowLayout( ));

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setSize(200, 200);

        setVisible(true);

        //setBackground(Color.yellow);//1.Durum

        //con.setBackground(Color.red);//2.Durum

    }



    public static void main(String[ ] args) {



        GetContentPaneDemo demo = new GetContentPaneDemo( );



    }

}


Ekran Görüntüleri (Sırası ile 1. Ve 2.Durum)





0 yorum:

Yorum Gönder