Alıştırmalar
← Ünite 3

Ünite 3: Tablo Tabanlı Veri Gösterimi — 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.

  1. Alıştırma 1myders hazırladı
    ListView ile TableView bileşenlerini veri yapısı, kullanım amacı ve sunduğu boyut imkânları açısından karşılaştırarak hangi durumlarda hangisinin tercih edilmesi gerektiğini açıklayınız.
    Yanıt / ipucu
    ListView tek boyutlu veri listelerini göstermek için kullanılırken, TableView çok sütunlu ve satırlı karmaşık verileri yan yana göstermek için tercih edilir. Tek bir metin listelenecekse ListView, bir nesnenin birden fazla özelliğinin (ad, soyad, numara gibi) karşılaştırılması gerekiyorsa TableView kullanılmalıdır.
  2. Alıştırma 2myders hazırladı
    PropertyValueFactory kullanımının avantajlarını ve dezavantajlarını değerlendirerek, lambda ifadeleri ile veri bağlamanın neden daha güvenli bir alternatif olduğunu açıklayınız.
    Yanıt / ipucu
    PropertyValueFactory hızlı ve pratik bir veri bağlama sunar ancak metinsel isim eşleştirmesi yaptığı için yazım hatalarında derleme hatası vermez ve sütun boş kalır. Lambda ifadeleri ise doğrudan kod seviyesinde property bağlaması yaptığından derleme aşamasında (compile-time) hata kontrolü sağlar ve daha güvenlidir.
  3. Alıştırma 3myders hazırladı
    Kullanıcının arama kutusuna yazdığı metne göre tablodaki verileri filtrelemek için FilteredList ve Predicate mekanizmasının nasıl çalıştığını bir senaryo üzerinden kurgulayınız.
    Yanıt / ipucu
    FilteredList, ana ObservableList'i sarmalayarak bir filtreleme koşulu (Predicate) uygular. Örneğin, arama kutusuna girilen metin her değiştiğinde Predicate güncellenerek sadece bu metni içeren nesnelerin tabloda kalması sağlanır ve ana veri kaynağına zarar verilmeden görünüm güncellenir.
  4. Alıştırma 4myders hazırladı
    TableView üzerinde sütun başlıklarına tıklandığında verilerin sıralanabilmesi için SortedList ve comparatorProperty bağlama adımlarını araştırıp açıklayınız.
    Yanıt / ipucu
    SortedList, ana listenin sıralanmış bir görünümünü sunar. TableView'in sıralama özelliğinin çalışması için SortedList'in comparatorProperty değeri tablonun comparatorProperty değerine bağlanır ve son olarak SortedList tabloya veri kaynağı olarak set edilir.
  5. Alıştırma 5myders hazırladı
    Düzenlenebilir (editable) bir TableView hücresinde kullanıcının girdiği yeni değerlerin modele başarıyla kaydedilmesi için StringConverter sınıfının üstlendiği görevi ve önemini açıklayınız.
    Yanıt / ipucu
    StringConverter, kullanıcının TextFieldTableCell gibi hücrelere girdiği metinsel (String) değerleri modelin beklediği veri türüne (örneğin Integer veya Double) dönüştürür. Eğer bu dönüştürücü tanımlanmazsa, arayüzden girilen yeni değerler model nesnesine doğru şekilde aktarılamaz ve veri kaybı yaşanır.