İnfografik
← Ünite 4
Görsel Programlama 2

Ünite 4: Çok Sayfalı Arayüz ve Uygulama Akışı

NetBeans Proje Yapısı
NetBeans, JavaFX FXML projelerinde MainController.java, FXMLDocumentController.java ve FXMLDocument.fxml dosyalarını standart olarak oluşturur. Bu yapı, geliştiricinin ekranları ve mantığı birbirinden ayırmasını kolaylaştırır.
FXML'in Rolü
FXML, arayüz bileşenlerini Java kodundan ayırarak deklaratif bir tanımlama sunar. 2025 yılı itibarıyla JavaFX uygulamalarında sürdürülebilir arayüzler için temel bir standarttır.
Görsel 4.1: Akış Diyagramları
Doğrusal ve dallanmış akış modellerinin şematik gösterimidir. Dallanmış akışlarda kullanıcının nerede olduğunu kaybetmemesi için geri dönüş mekanizmaları kritik öneme sahiptir.
Görsel 4.2: Panel Yapısı
Panel tabanlı navigasyonda merkez panelin değiştirilmesi yöntemini gösterir. Bu yöntem, özellikle yönetim panellerinde kod tekrarını azaltmak için kullanılır.

Anahtar Kavramlar

Scene (Sahne)JavaFX uygulamasında bir pencere (Stage) içinde gösterilen tüm arayüz bileşenlerini kapsayan temel yapıdır. Örnek: Bir giriş ekranı için ayrı bir sahne, ana menü için ayrı bir sahne tanımlanması.
Uygulama AkışıKullanıcının uygulama içindeki hareketlerinin önceden planlanmış bir düzen içinde ilerlemesidir. Örnek: Kullanıcının giriş ekranından ana menüye, oradan da ayarlar ekranına geçiş süreci.
FXMLJavaFX uygulamalarında kullanıcı arayüzünü XML formatında tanımlamaya yarayan bir işaretleme dilidir. Örnek: Butonların ve metin alanlarının yerleşiminin bir FXML dosyasında tanımlanması.
ControllerFXML dosyasındaki arayüz bileşenlerinin davranışlarını ve olay yönetimini üstlenen Java sınıfıdır. Örnek: Butona tıklandığında ekran geçişini tetikleyen metodun bu sınıfta yer alması.
Doğrusal AkışKullanıcının her aşamayı sırayla tamamlaması gereken, adım adım ilerleyen akış modelidir. Örnek: Bir kurulum sihirbazında birinci adımı bitirmeden ikinciye geçilememesi.
Dallanmış AkışKullanıcının yaptığı seçimlere göre uygulamanın farklı ekranlara yönlendiği akış modelidir. Örnek: Bir yönetim panelinde 'Kullanıcılar' veya 'Ayarlar' menüsüne göre farklı ekranların açılması.
Panel Tabanlı NavigasyonTek bir sahne üzerinde, sabit bölümler korunarak içerik alanının dinamik değiştirilmesidir. Örnek: BorderPane kullanarak sol menüyü sabit tutup orta kısmı değiştirmek.
Constructor ile Veri AktarımıYeni ekranın Controller'ı oluşturulurken verilerin parametre olarak iletilmesidir. Örnek: Kullanıcı adının, detay ekranı açılırken constructor üzerinden gönderilmesi.
Setter ile Veri AktarımıEkran yüklendikten sonra verilerin özel metotlar aracılığıyla Controller'a aktarılmasıdır. Örnek: Ekran açıldıktan sonra `setUserName()` metoduyla verinin gönderilmesi.
Ortak Model SınıflarıUygulamanın genelinde kullanılan verilerin merkezi bir sınıfta tutulmasıdır. Örnek: Oturum bilgilerinin tüm ekranlar tarafından erişilebilir bir model sınıfında saklanması.
Stage (Pencere)JavaFX uygulamasının en üst düzey kapsayıcısıdır ve sahneleri içinde barındırır. Örnek: Uygulamanın açıldığı ana pencere çerçevesi.

Diğer Önemli Bilgiler

Görsel 4.3 ve 4.4: FXML ve Controller İlişkisi

FXML dosyasındaki onAction özelliği, Controller sınıfındaki ilgili metotla eşleşmelidir. Bu, kullanıcı etkileşimlerinin kod tarafında işlenmesini sağlar.

Görsel 4.5: SecondView.fxml

İkinci ekran için oluşturulan bağımsız bir FXML dosyasıdır. Basit ekranlarda ayrı bir Controller yazılması zorunlu olmayabilir ancak karmaşık yapılarda gereklidir.

Görsel 4.6: Uygulama Ekranı

ComboBox'tan seçilen bir ismin, 'Detayı Göster' butonu ile yeni bir ekrana aktarıldığı örnek uygulamayı temsil eder. Bu, veri akışının en temel senaryosudur.

Oracle JavaFX Best Practices

2014 yılında yayınlanan bu doküman, Model-View-Controller (MVC) deseninin JavaFX projelerinde kullanılmasını ve arayüz sürdürülebilirliğini vurgular.

Sınavda Dikkat Et

  • Sahne (Scene) ve Panel (Pane) farkını iyi anlayın; Scene tüm ekranı değiştirirken, Pane sadece içerik alanını günceller.
  • Veri aktarım yöntemlerini senaryoya göre seçin; zorunlu veri ise Constructor, esnek veri ise Setter kullanın.
  • FXML ve Controller ilişkisini unutmayın; onAction özelliği Controller'daki metotla eşleşmelidir.
  • Dallanmış akışlarda kullanıcının kaybolmaması için geri dönüş mekanizmalarının şart olduğunu hatırlayın.
  • Tek pencere-çok ekran yaklaşımının en büyük avantajının 'odak dağılmasını önlemek' olduğunu not edin.
  • FXML'in temel mimari katkısının 'arayüz ile mantığı ayırmak' olduğunu sınavda mutlaka hatırlayın.