JavaFX - Pencere Oluşturma ve Buton Ekleme

JavaFX - Pencere Oluşturma ve Buton EklemeJavaFX paketini kullanarak GUI uygulama oluşturacağız. Kullanacağım IDE, NetBeans. Uygulamayı oluşturmak için ilk olarak, File New Project...JavaFX JavaFX Application adımları seçilir ve sonrasında çıkan ekranda proje ismini şahsen ders olarak adlandırdım. Proje oluşturulduktan sonra Ders.java dosyası içinde hazır olarak bir kod gelmiş olacaktır. Uygulamayı çalıştırdığımızda yandaki gibi bir pencere karşımıza çıkacaktır:

Pencerenin ortasındaki butona tıklandığında, konsola 'Hello World' yazdırılmış olacaktır. Buraya kadar olan kısımda JavaFX paketinin düzgün bir şekilde çalışıyor olduğunu tespit ettik.

Öğrenme amaçlı Ders.java dosyası içindeki belli yerleri siliyoruz. En son hali aşağıdaki gibi oluyor:
package ders;

import javafx.application.Application;
import javafx.stage.Stage;

public class Ders extends Application {
    
    @Override
    public void start(Stage primaryStage) {
        
    }

    public static void main(String[] args) {
        launch(args);
    }
}
Kodu incelemek gerekirse ilk olarak iki sınıf koda dahil edildi. Ders sınıfı, Application sınıfından kalıtım almakta ve Stage türünde olan primaryStage ise parametre olarak start fonksiyonunda verilmekte. start() fonksiyonu kalıtım alınan Application sınıfına ait ve @Override ile bu fonksiyona tekrar yükleme yapılıyor. Start() fonksiyonu JavaFX uygulamasını başlatır. Ders sınıfına ait olan Main() fonksiyonu programın çalışacağı ana fonksiyondur. İçerisinde bulunan launch fonksiyonu ise Application sınıfına bağımlıdır. JavaFX uygulamasını launch() fonksiyonu çalıştırmaktadır.

Pencere Oluşturma

Stage sınıfı, programın görsel olarak tüm halini temsil etmektedir. Bir pencere düşünün, onu en genel halini temsil eden Stage nesnesidir. Start() fonksiyonu içerisine iki satır kod yazılır ve uygulama çalıştırılır:
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Ders Uygulaması");
        primaryStage.show();
    }
Karşımıza beyaz renki boş bir ekran çıkmakta ve başlığında ise "Ders Uygulaması" yazmaktadır. Ancal bu uygulamada bir şeyler gösterebilmemiz için Stage nesnesine Scene nesnesi eklemeliyiz. Yine bu işlemde start() fonksiyonu içinde yapılır. Scene nesnesi uygulamadaki sahneyi temsil etmektedir. Bu sahnede yer alacak olan öğeler ise butonlar, text kutuları, label vs. Ancak biz bu öğeleri direkt olarak sahneye eklememeliyiz. Bu elemanlar sahne içerisinde belli bir düzende olmalıdır. Eğer aşağıdaki gibi direkt eklersek, çalıştırdıktan sonra alınan sonucu gördüğünüzde ne demek istediğimi anlayacaksınız.
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Ders Uygulaması");
        
        Button button = new Button("Merhaba");
        Scene scene = new Scene(button, 640, 480);
        primaryStage.setScene(scene);
        
        primaryStage.show();
    }
Elde edilen sonuç tüm sahneyi kaplayan bir buton. Tabi bunun olmasını istemediğimiz için layout compenent kullanmalıyız. Layout component, belli tip düzen içinde eleman eklememize olanak sağlayan yapılardır. Bu yapıların değişik tipleri vardır ancak şimdilik burada onlara değinmeyeceğiz. Benim kullanacağım tür VBox layout bileşenidir. Bu bileşen, elemanları dikey olarak sahneye eklememizi sağlar. O yüzden kodda aşağıdaki gibi değişikliğe gidiyoruz:
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Ders Uygulaması");
        
        VBox vBox = new VBox();
        Button button = new Button("Merhaba");
        vBox.getChildren().add(button);
        Scene scene = new Scene(vBox, 640, 480);
        primaryStage.setScene(scene);
        
        primaryStage.show();
    }
Uygulamayı çalıştırdığımızda elde edilen sonuç aşağıdaki gibidir:
JavaFX - Pencere Oluşturma ve Buton Ekleme

Hiç yorum yok:

Yorum Gönderme