1

JavaFX Listview & Tableview Filtreleme İşlemleri Bölüm – 1

Merhaba arkadaşlar  bu  yazıda javafx  ile kullandığımız listview ve tableview kontrollerinde nasıl filtereleme işlemi yaparız temel mantık nedir? bundan bahsetmek istiyorum. Şimdi öncelikle filtre işlemindeki temel mantıkdan bahsedeyim; bildiğimiz gibi javafx de “observable” nin yeri büyük ve birçok kolaylığa vesile oluyor bu sebeple yine onun üzerinden filtreleme işlemini yüreteceğiz. Doğrudan listview ile herhangi bir işimiz yok. 🙂

Yapacağımız işlemleri Adım adım yazalım

  1. Adım : Veri kaynağı için bir ObservableList oluşturacağız ve bunu FilteredList nesnemize paremetre olarak geçecegiz. 
  2. Adım : İlk defa bütün liste elemanlarını görüntüleyebilmek için bir Predicate nesnesi oluşturacağız ve bu predicate bütün değerleri true döndürecek
  3. Adım : Bu Predicate nesnemizi Filteredlist nesnemize setPredicate ile set edeceğiz
  4. Adım : FilteredList’imizi listView nesnemize setItems ile atayacağız

tabi devamında da bazı işler yapacağım ancak aslında yine bu işler tekrarlayacak.  Burada Predicate nedir ? diye sorduğunuzu sanıyorum. Predicate aynen Comparator interface si gibi bir Interface bizim kriterimize göre nesneleri filtreleyip FilteredList’e dolduruyor. Comparator interfacesinde karşılaştırma yapmıştık ya aynen onun gibi bu da Filtreleme için kullanılan bir nesne.

Şimdi bize lazım olan nesneleri oluşturalım

buradaki filterTextField nesnemizi filtreleme yaparken karakter yazmak için kullanacağız. projemizin  “init()” metodunda veri kaynağımızı dolduralım ve ilk filtreleme işlemini yapalım

burada observablelist’imizi doldurduk , Filteredlist’imizi örnekledik ve persons observablesini filteredList’e parametre geçtik ( içine attık ) ve ilk predicate’yi tanımladık. listview’i örnekleyip setItems ile dataları aktardık. buraya kadar ki bölümde şunu yapmış olduk. ( ” Sahneyi hazırlamadık ama hazırlayınca buraya kadarkilerin ne olduğu”)

 

Evet devam edelim….

Şimdi geldi start() metodunu oluşturmaya

burada ise textField ‘imizi örnekledik.  ardına setOnKeyReleased() metodu ile için yazılanları dinledik. yeni bir predicate oluşturdum ve burdaki “s” paremetresi listenin her bir elemanını temsil etmekte .  Eğer textfield ‘imiz boşsa bütün değerler dönsün dedik. Eğer textfield içine yazılan bilgi ” s ” ‘nin içinde varsa o zaman listeye eklensin dedik. değilse listeye eklenmeyecek böylece filtre listemizi oluşturup listview’e atadık. 

konunun videosunu izleyebilirsiniz. videonun sonunda bir hatayı düzelttim video da hatalı gözüküyor. yukarıdaki koddan karşılaştırırsınız. 

 

İkinci bölümde Tableview ‘de bu işlem nasıl yapılır bunu inceleyeceğiz. 

 

admin

One Comment

  1. Çok Başarılı Bir Çalışma Olmuş İnternet Ortamında Bu Tarz Videolar Çok Bulunmuyor. Emeğinize Sağlık.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir