JavaFX Dialog Sınıfı ve Kullanımı

Merhaba , bu yazıda sizlere Javafx’de kullanabileceğimiz Dialog sınıfından bahsetmek istiyorum. Nedir Dialog diye başlayalım söze. Dialog kutuları bilindiği gibi proğramlarımızda bir yerlere basınca karşımıza gelen bize cevap vermeyince genellikle geçmeyen en az “OK” ,”CANCEL” butonu barındıran , kullanıcıya bazı bilgiler iletmek için yada kullacıdan bilgi almak için kullanılan bir yapıdır. 

Dialog nesnesi  javafx.scene.control  paketinin içinde gelen bir nesne . Dialog nesnenini temel bir class olarak kabul ettiğimizde bunun bazı sub ( alt) sınıflarının olduğunu görmekteyiz. Bunlar  AlertChoiceDialog and TextInputDialog    sınıflarıdır.

O zaman bunları örneklerle tek tek incelemeye çalışalım. Dialog<R> sınıfı görüldüğü gibi jenerik olarak da kullanılabilir buda bize bizim türümüzden bir geri dönüş alabilmeyi sağlamaktadır. Yani şunu demek istedim siz diyelimki ordaki bir butona bastığınızda size döndürdüğü değer sizin jenerik türünüzden olacaktır.  Default olarak döndürdüğü sonuç tipi ButtonType dir . Şimdi… gelelim örneklemeye

Dialog pencerelerini istediğimiz gibi dizayn edebiliriz. İçerisine button, choiceButton , TextField yada kendi oluşturduğumuz content’leri ekleyebiliyoruz. Ancak tüm Dialog pencereleri modal dır ve default olarak boyutlandırılımazlar. 

Tabi bu sınıfdan oluşturulan nesnelerin event’ları da vardır bunlarla farklı durumları yakalıyıp ona göre kod yazabilirsiniz.  DialogEvent sınıfının altında bulunan: DIALOG_CLOSE_REQUEST, DIALOG_HIDDEN, DIALOG_HIDING, DIALOG_SHOWING, DIALOG_SHOWN. gibi metodları override ederek değişik halleri yakalabilirsiniz.

Birde Result Type Converter ‘ımız var.

Bu da geri dönecek nesneyi geri dönüş tipine çevirmede kullanılır. Kişiselleştirilmiş dialoglarda kullanılır.  detayını örnekte göstereceğiz.

Haydi başlayalım

Alert Dialog 

Alert sınıfıDialog<ButtonType> sınıfından extends edilmiştir.

Kullanıcıya dialog arayüzleri oluşturmak için kullanılır. Alert oluştururken Constructorda “AlertType” türünden bir parametre geçmeniz lazım. 

 

 

 

 

 

 

İlk örneğimizi yaptık. ve karşımızda şöyle bir pencere oluştu.Kodlar gayet anlaşılır olduğu düşünüyorum. Burada şunun önemine işaret  ettik constructor AlertType türünden bir nesne aldığı… Şimdi devam edelim… ve butonlara basıldığında hangi butona basıldığını tespit edip ona göre davranalım.

Evet burada Optional nesnemiz ButtonType diye bir paramatere alıyor. showAndWait() metodu Optional türden bir nesne yolluyor.   Bizde bir sonraki if bloğun da gerekli kontrolleri yapalım. Eğer bir butona basma vb. işlem yapıldıysa ve sonuç döndüren nesnede ButtonType.OK tamam değeri döndüyse diye ayarladık.  result.get() metodu ise sonucu bize ButtonType türünden gönderiyor.

Şimdi gelelim Choice Dialog Örneğine resimdeki gibi bir açılır kutu penceresi açacağız. 

Bu da tamamdır. Şimdi gelelim TextInputDialog türümüze . Bu da karşımıza bir text kutusu çıkarıyor. Aynen böyle 

 

Evet bir de Custom Panel oluşturalım yani bize özel bir model sınıfı kullanalım. ve şöyle bir ekran oluşturalım ve konsola bilgi yazalım. 

Bu arada bir not : PhoneBook sınıfını oluşturduğunuz da toString()  metodunu istediğiniz gibi override edin yoksa ekranda garip yazılar görebilirsiniz.

İşte sonuc

Bir cevap yazın

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