Ünite 1: Javafx ile Uygulama Geliştirmeye Geçiş — Alıştırmalar
Ders kitabının açık uçlu alıştırmaları. Bunlar çoktan seçmeli sınav sorusu değil — düşünmeni, araştırmanı, kendi cümlelerinle anlatmanı isteyen etkinlikler. Kitabın verdiği örnek yanıtlar kapalı duruyor; önce kendin dene.
Alıştırma 1myders hazırladı
JavaFX uygulamalarındaki 'init()', 'start()' ve 'stop()' metotlarının görevlerini ve hangi sırayla çalıştıklarını açıklayan bir akış şeması veya karşılaştırma tablosu hazırlayınız.
Yanıt / ipucu
'init()' ilk çalışan metottur ve ön hazırlıkları yapar; ardından 'start()' çalışarak arayüzü ve sahneyi (Stage) yükler; uygulama kapatılırken ise 'stop()' metodu çalışarak kaynakları temizler.
Alıştırma 1myders hazırladı
JavaFX uygulamalarındaki 'init()', 'start()' ve 'stop()' metotlarının görevlerini ve hangi sırayla çalıştırıldıklarını açıklayarak bir senaryo üzerinden örneklendiriniz.
Yanıt / ipucu
Bu metotlar sırasıyla 'init()' (başlangıç hazırlıkları), 'start()' (arayüzün çizilmesi) ve 'stop()' (kapanış işlemleri) şeklinde çalışır. Örneğin, 'init()' içinde veritabanı bağlantısı kurulabilir, 'start()' ile kullanıcı ekranı gösterilir ve 'stop()' ile bağlantı güvenli bir şekilde kapatılır.
Alıştırma 2myders hazırladı
NetBeans üzerinde JDK 11 veya üzeri bir sürüm kullanırken 'JavaFX Application' şablonunun çalışmamasının nedenini ve bu sorunun nasıl çözülebileceğini araştırıp açıklayınız.
Yanıt / ipucu
JDK 11 ve sonrasında JavaFX, JDK paketinden ayrılmıştır. Bu sorunu çözmek için harici JavaFX SDK kütüphanelerini projeye eklemek ve çalışma zamanı (VM) seçeneklerini yapılandırmak gerekir.
Alıştırma 2myders hazırladı
JavaFX projelerinde standart 'ArrayList' yerine neden 'ObservableList' kullanılması gerektiğini, veri ve arayüz etkileşimi açısından karşılaştırarak açıklayınız.
Yanıt / ipucu
Standart 'ArrayList' veri değişimlerini arayüze otomatik olarak bildirmez ve ekranın güncellenmesini sağlamaz. 'ObservableList' ise dinamik bir yapı sunarak listede yapılan ekleme veya silme gibi değişiklikleri dinleyen arayüz bileşenlerine anında yansıtır.
Alıştırma 3myders hazırladı
JavaFX mimarisinde 'JavaFX Application Thread' iş parçacığının önemini araştırınız ve arayüz güncellemelerinin neden bu iş parçacığı üzerinde yapılması gerektiğini açıklayınız.
Yanıt / ipucu
Bu iş parçacığı, arayüz bileşenlerinin güvenli ve kararlı bir şekilde güncellenmesini sağlar. Farklı iş parçacıklarından doğrudan arayüze müdahale edilmesi, uygulamanın kilitlenmesine veya tutarsız çalışmasına yol açar.
Alıştırma 3myders hazırladı
Büyük ölçekli bir JavaFX projesinde kod karmaşasını önlemek için önerilen 'model', 'service' ve 'ui' paketleme yapısını açıklayarak, her bir pakete hangi sınıfların konulması gerektiğini belirtiniz.
Yanıt / ipucu
'model' paketi veri yapılarını (örn. Ogrenci sınıfı), 'service' paketi iş mantığı ve veri işlemlerini, 'ui' paketi ise buton ve pencerelerin yer aldığı arayüz kodlarını içerir. Bu ayrım, kodun bakımını kolaylaştırır ve modülerliği artırır.
Alıştırma 4myders hazırladı
Java kodunda standart bir 'ArrayList' yerine 'ObservableList' kullanılmasının arayüz güncellemeleri açısından ne gibi avantajlar sağladığını örnekleyerek açıklayınız.
Yanıt / ipucu
'ObservableList', içerisindeki veri değişikliklerini (ekleme, silme, güncelleme) bağlı olduğu arayüz bileşenlerine otomatik olarak bildirir. Bu sayede arayüzü manuel olarak yenileme kodları yazmaya gerek kalmaz.
Alıştırma 4myders hazırladı
'JavaFX Application Thread' kavramını araştırınız. Arayüz güncellemelerinin neden sadece bu iş parçacığı üzerinden yapılması gerektiğini ve bu kurala uyulmamasının ne gibi sorunlara yol açabileceğini tartışınız.
Yanıt / ipucu
JavaFX arayüz bileşenleri iş parçacığı güvenli (thread-safe) değildir; bu nedenle tüm güncellemeler tek bir ana iş parçacığında yapılmalıdır. Farklı bir iş parçacığından arayüze müdahale etmek uygulamanın kilitlenmesine veya beklenmedik hatalar vermesine yol açar.
Alıştırma 5myders hazırladı
Büyük ölçekli bir JavaFX projesinde kod karmaşasını önlemek için önerilen 'model', 'service' ve 'ui' paketleme yapısının sorumluluklarını gösteren bir proje klasör şeması tasarlayınız.
Yanıt / ipucu
'model' paketi veri yapılarını, 'service' paketi iş mantığını ve veritabanı işlemlerini, 'ui' paketi ise pencereleri ve görsel bileşenleri barındırmalıdır. Bu ayrım kodun bakımını ve test edilmesini kolaylaştırır.
Alıştırma 5myders hazırladı
NetBeans üzerinde FXML kullanmadan, sadece Java kodları ile içerisinde bir adet 'Label', bir adet 'Button' ve bunları dikey hizalayan bir 'VBox' barındıran basit bir arayüz taslağını 'start()' metodu içinde nasıl oluşturacağınızı adım adım yazınız.
Yanıt / ipucu
İlk olarak 'Label' ve 'Button' nesneleri oluşturulur, ardından bu bileşenler 'VBox' yerleşim düzenine eklenir. Son olarak 'VBox' nesnesi bir 'Scene' içerisine yerleştirilir ve bu sahne 'primaryStage.setScene()' metoduyla ana ekrana atanarak 'show()' ile gösterilir.