Java GUI Frame Sınıfı

23-10-2013
Bir kullanıcı arayüzü oluşturmak için ya bir tane JFrame nesnesi veya Applet oluşturmak gerekmektedir.
 
Frame Yaratmak
Frame yaratmak için JFrame sınıfı kullanılmaktadır.
 
Örnek Bir Uygulama
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class MyFrame {
   public static void main(String[] args) {
       JFrame frame = new JFrame("MyFrame"); //Frame nesnesi oluşturulur
       frame.setSize(400, 300); // Frame'in boyutu belirlenir
       // Frame'in ekranın tam ortasinda acilmasini saglar
       frame.setLocationRelativeTo(null);
        /*jdk 1.7 de , JFrame.EXIT_ON_CLOSE yerine WindowConstants.EXIT_ON_CLOSE kullanilmasi tavsiye edilir */
      frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      frame.setVisible(true); // Frame'in gösterilmesini saglar
  }
}
Constructors

JFrame(): Başlıksız frame oluşturur.
JFrame(title: String): Başlığı girilen parametre değerine göre belir bir frame oluşturmayı sağlar. Örnek: JFrame("Hello World"); denildiğinde "Hello World" başlıklı bir frame oluşturulur.
 
Methods

setSize(width: int, height: int): void : Frame’in boyutunu belirlemeyi sağlar.(void: dönüş tipi)
setVisible(visible: boolean): void : Frame’in gösterilebilmesi için true değer alması gerekir.
setDefaultCloseOperation(mode: int): void : Frame kapatıldığında programın yapacağı işlemi belirtmeyi sağlar. Parametre olarak aldığı değerler şunlardır:
 
1. Jdk 1.7 den önceki versiyonlarda:
JFrame.EXIT_ON_CLOSE : Frame kapatıldığında programda kapanır
JFrame.DO_NOTHING_ON_CLOSE : Frame kapatılmasından program etkilenmez
JFrame.DISPOSE_ON_CLOSE :  Frame kapatıldığında program başka işlem varsa çalışmaya devam eder, yoksa kapanır.
JFrame.HIDE_ON_CLOSE : Frame kapatıldığında memory’den silinmez, tekrar çağrılmayı bekler. Program kapanmaz.
 
 
2. Jdk 1.7 ve sonraki versiyonlarda:
WindowConstants.EXIT_ON_CLOSE : Frame kapatıldığında programda kapanır
WindowConstants.DO_NOTHING_ON_CLOSE : Frame kapatılmasından program etkilenmez
WindowConstants.DISPOSE_ON_CLOSE :  Frame kapatıldığında program başka işlem varsa çalışmaya devam eder, yoksa kapanır.
WindowConstants.HIDE_ON_CLOSE : Frame kapatıldığında memory’den silinmez, tekrar çağrılmayı bekler. Program kapanmaz.
 
Not: Eğer setDefaultCloseOperation() metodunu kullanmazsak, frame kapatıldığında varsayılan değer HIDE_ON_CLOSE olduğu için program kapanmaz.
 
setLocationRelativeTo(c: Component): void : Parametre olarak girilen componente göre ekranda nasıl gösterileceğini belirler. Eğer parametre olarak null girilirse, ekranın ortasında gösterilir.
Not: JButton, JLabel, JTextField, JPanel, vs sınıflara component denir.
 
pack(): void : Frame’de bulunan componentlerin büyüklüğüne göre tüm componentleri barındırmak için frame’in boyutunu otomatik olarak belirlenmesini sağlar.
 
Not: Eğer setSize metodundan sonra, pack metodunu kullanırsak, setSize metodunda girilen boyuta göre değil pack metodunu göre, frame’in boyutu belirlenir.
Not: setSize metodunu setLocationRelativeTo(c: Component) metodundan önce yazmazsasetLocationRelativeTo(c:Component) metodu istenen sonucu vermez.
 

Frame’e Component Eklemek

Her JFrame bir content pane(içerik bölmesi) içerir. Bu content pane, java.awt.Container sınıfından türetilmiş bir nesnedir. JFrame’e eklenen JButton gibi componentler bu content pane yerleştirilir. JDK’nın önceki versiyonlarında, JFrame'e bir component eklemek istediğimizde getContentPane metodunu kullanarak content pane nesnesini döndürür, daha sonra bu nesnenin add metodunu kullanarak component eklerdik:

JFrame frame= new JFrame();
JButton jbtOK= new JButton("OK");
java.awt.Container container = frame.getContentPane();
container.add(jbtOK); 
Java 5. versiyon ile yukarıdaki kodların yaptığı işlem şu şekilde kısalmıştır:

JFrame frame= new JFrame();
JButton jbtOK= new JButton("OK");
frame.add(jbtOK);
Not: Sonuç olarak, bir frame nesnesine component eklendiğinde aslında bu component frame nesnesine değil, frame nesnesinin barındırdığı content pane nesnesine eklenmektedir.
Frame nesnesinden bir component çıkarmak istediğimizde remove(c:Component) metodu kullanılır.

© 2019 Tüm Hakları Saklıdır. Codesenior.COM