Temel JavaFX Bileşenleri (1) Labeled, Label, Button, ToggleButton, RadioButton, ToggleGroup, CheckBox, ComboBox, Slider, ListView ve SelectionModel

Benzer belgeler
Temel JavaFX Bileşenleri (2) TextField, ScrollPane, TreeView ve TableView,

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

JavaFX Temelleri (1)

ÖĞRENME FAALĠYETĠ GELĠġMĠġ ÖZELLĠKLER

SÜRE BİLİŞİM TEKNOLOJİLERİ ÜNİTE 1: : BİLGİ VE TEKNOLOJİ DERS SAATİ: 7

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: BİL 1007

Braille Star 40 Başvuru Kitapçığı Sürüm 4.0 Lütfen bu başvuru kitapçığıyla birlikte paketinizde bulunan kullanıcı kılavuzunu da gözden geçirin.

Veri Toplama Yöntemleri. Prof.Dr.Besti Üstün

KAVRAMLAR. Büyüme ve Gelişme. Büyüme. Büyüme ile Gelişme birbirlerinden farklı kavramlardır.

Q-BIZ VIEWER KULLANIM KILAVUZU

Şekil 1. Sistem Açılış Sayfası

ShapeReg Geri döndürdüğü değere göre shape nesnesini aşağıdaki tabloda belirtilen şekle çevirir.

Bölgeler kullanarak yer çekimini kaldırabilir, sisli ortamlar yaratabilirsiniz.

YATIRIM FONU ALIM SATIM İŞLEMLERİ KULLANICI KILAVUZU

JavaFX Temelleri (2)

ELITE A.G. KS100/HEFM SICAK-SOĞUK ETĐKET BOY KESME VE ĐŞARETLEME MAKĐNASI KULLANIM KILAVUZU

1. Mesaj Tipi ve Mesaj Fonksiyonu Bazında Bildirim Mail Adresi Tanımlama Đşlemleri

Bilgisayar Uygulamaları PSİ105

DERLEYİCİ TASARIMI ÖDEV-2 RAPORU

Temel Bilgisayar Programlama

Sınıf Nesne Kavramları C# Bileşenleri Özellikler, Olaylar, Metotlar

Bilgisayar Programcılığı. Görsel Programlama-I. Öğr. Gör. Cansu AYVAZ GÜVEN

ÖĞRENME FAALĠYETĠ 6 ÖĞRENME FAALĠYETĠ NESNE ĠġLEMLERĠ

Legends hesabı olan bütün sihirdarlar turnuvada yarışmak için uygundur.

3. CheckedListBox 4. ListView

C Operatörler. Öğr. Gör. M. Ozan AKI. Rev 1.0

AIMCO AIMCO. Kullanım Kılavuzu. Mayıs 2016

ve Menüleri Özelleştirmek, Sistem Ayarlarını Değiştirmek

Ç.Ü. GÜZEL SANATLAR FAKÜLTESİ İÇ MİMARLIK BÖLÜMÜ GÜZ YARIYILI İÇM PROJE 5 & DİPLOMA PROJESİ

İşaret Aygıtları ve Klavye

Digifresh Kullanım Kılavuzu

Burak Kıymaz JAVA FX

5. ÜNİTE KUMANDA DEVRE ŞEMALARI ÇİZİMİ

@. BÖLÜM. Çalışma bölümü

İşaret Aygıtları ve Klavye Kullanıcı Kılavuzu

META TRADER 4 MOBİL İŞLEM PLATFORMLARI KULLANMA KILAVUZU 1. KURULUM

LG BİREYSEL AKILLI TELEFON KAMPANYA TAAHHÜTNAMESİ

İÇİNDEKİLER. 1. Projenin Amacı Proje Yönetimi Projenin Değerlendirilmesi Projenin Süresi Projenin Kapsamı...

MÜHENDİSLİK ve MİMARLIK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ ELEKTRONİK DEVRELER LABORATUVARI DENEY FÖYÜ 1

Konveyörler NP, NI Serisi

Örgün Öğrenci Sistemi Anadolu Üniversitesinde öğretim elemanlarının verdikleri

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

VEGAWINA VERSION

Parametrik Yapı Modelleme: BIM in Temeli

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI YÜZEY DOLDURMA TEKNİKLERİ

SAYISAL TASARIM. Ege Üniversitesi Ege MYO Mekatronik Programı

Genel bilgiler Windows gezgini Kes Kopyala Yapıştır komutları. 4 Bilinen Dosya Uzantıları

Araştırma Notu 15/177

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1

Uzaktan Kumanda (Yalnızca Belirli Modellerde)

Modem ve Yerel Ağ Kullanım Kılavuzu

RTX6_LRN Kod öğrenmeli Uzaktan kumanda

ELLE SÜT SAĞIM FAALİYETİNİN KADINLARIN HAYATINDAKİ YERİ ARAŞTIRMA SONUÇLARI ANALİZ RAPORU


BLACKBERRY BİREYSEL AKILLI TELEFON KAMPANYA TAAHHÜTNAMESİ

ULUDAĞ ÜNİVERSİTESİ ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ ELN3052 OTOMATİK KONTROL

Elektrik Makinaları I. Senkron Makinalar Stator Sargılarının oluşturduğu Alternatif Alan ve Döner Alan, Sargıda Endüklenen Hareket Gerilimi

ÇÖKELME SERTLEŞTİRMESİ (YAŞLANDIRMA) DENEYİ

B05.11 Faaliyet Alanı

Olasılık ve İstatistik Dersinin Öğretiminde Deney ve Simülasyon

1 BOOTSTRAP NEDİR? 1 Bootstrap Nedir? 1 Bootstrap Dosyalarının Siteye Dahil Edilmesi 2 Bootstrap ın Sağladığı Kolaylıklar 3

HSancak Nesne Tabanlı Programlama I Ders Notları

EBYS Eğitimi. Sisteme erişim adresi:

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

Taşıyıcı Sistem Elemanları

Bu konuda cevap verilecek sorular?

BİLGİSAYAR PROGRAMLAMA

Ders 7: Form Kontrol Elemanları. barisgokce.com

TEKNİK RESİM. Ders Notları: Mehmet Çevik Dokuz Eylül Üniversitesi. Görünüşler - 1

ENFLASYON ORANLARI

NOTEBOOK KAMPANYA TAAHHÜTNAMESİ

YÖNETMELİK. a) Basamak kontrolü: On beş basamaklı IMEI numarasının son basamağının doğruluğunun kontrolünü,

Doç.Dr.Mehmet Emin Altundemir 1 Sakarya Akademik Dan man

AĞRI İBRAHİM ÇEÇEN ÜNİVERSİTESİ FEN-EDEBİYAT FAKÜLTESİ BİTİRME TEZİ YÖNERGESİ

designed by Nurus D Lab teknik doküman

BÖL-1B. Fatih University- Faculty of Engineering- Electric and Electronic Dept.

EPKAS (ELEKTRONİK PROJE KONTROL ARŞİVLEME SİSTEMİ) WEB KULLANIM KILAVUZU

ACENTE PORTAL QUICKRES/TROYA ACENTE BAŞVURU KILAVUZU

KORELASYON VE REGRESYON ANALİZİ

Ö RENME FAAL YET 9 Ö RENME FAAL YET 9

BİLGİ TEKNOLOJİLERİ VE İLETİŞİM KURULU KARARI

int printf (const char *format [, argument,...]);

1. Yapılan ayarları kontrol etmek 2. Hataların doğru anlaşıldığından emin olmak 3. Donanıma uygun işletim sistemini belirlemek İŞLEM ANALİZ FORMU

1 - Button Kontrolu Nasıl Yapılır?

Setup Yardımcı Programı

Albatros2 Grafiksel Kullanıcı Arayüzü UI400 Hızlı Kullanım Rehberi

DOKÜMAN YÖNETİM SİSTEMİ KULLANIMI GELEN EVRAK

İTÜ GELİŞTİRME VAKFI ÖZEL Dr. NATUK BİRKAN İLKOKULU VE ORTAOKULU. OkulNET Kullanım Kılavuzu

FOTOGRAMETRİK DEĞERLENDİRME - ÇİFT FOT. DEĞ. Analog ve Analitik Stereodeğerlendirme. Yrd. Doç. Dr. Aycan M. MARANGOZ

ÖZEL İLETİŞİM VERGİSİ GENEL TEBLİĞİ (SERİ NO: 14) BİRİNCİ BÖLÜM

TEBLİĞ. Gümrük ve Ticaret Bakanlığından: GÜMRÜK GENEL TEBLİĞİ (TRANSİT İŞLEMLERİ) (SERİ NO:3) NDE

EKONOMİK GELİŞMELER Eylül 2012

Video Dizilerinden Reklam Saptama ve İndeksleme

T8400C, T8401C Standart Elektronik Termostat

TOHUMLUK VERİ YÖNETİM SİSTEMİ. KULLANIM ve YARDIM KILAVUZU

VEZNE PROGRAMINDA POSTA ÜCRETİ İLE İLGİLİ YAPILAN DÜZENLEMELER (Vezne Sürüm: )

Oyun Teorisi IENG 456 Karar Vermede Analitik Yaklaşımlar

ASENKRON (İNDÜKSİYON)

Anonim Verilerin Lenovo ile Paylaşılması. İçindekiler. Harmony

Dosya(FILE) araç çubuğu

Transkript:

Temel JavaFX Bileşenleri (1) Labeled, Label, Button, ToggleButton, RadioButton, ToggleGroup, CheckBox, ComboBox, Slider, ListView ve SelectionModel

JavaFX Nodları javafx.scene.node: sahneye eklenebilen grafiksel bileşenlerdir javafx.scene.parent: çocukları (alt nodları) olabilen nodlardır javafx.scene.layout.region: ek özellikleri bulunan Parent nodlardır Arka plan (background), kenar (border), şekil Çocuklar (alt nodlar) arka plan üzerine çizilirler Kontrollerin ve panoların (panes) temel sınıfı javafx.scene.control.control: kullanıcı tarafından kullanılabilen (durumu değiştirilebilen) nodlardır javafx.scene.layout.pane: çocuk nodlarının yerleştirilmesinden sorumlu panoların temel sınıfıdır

javafx.scene.control.labeled Metin (text), grafik (graphics), veya ikisini birden içerebilen elemandır Soyut sınıf Control sınıfından türetilmiştir settext(string text) setgraphic(node graphic) setcontentdisplay(contentdisplay value) ContentDisplay.TOP, ContentDisplay.RIGHT, vs. Grafiğin metine göre bağıl pozisyonunu belirler ContentDisplay.GRAPHIC_ONLY, ContentDisplay.TEXT_ONLY

javafx.scene.control.label Etiket (Label): Kullanıcı arayüzünde bir mesaj göstermek için kullanılan görsel bileşendir Düzenlenemeyen (non-editable) kontrol Labeled sınıfından türetilmiştir Normal şartlarda girdi giriş odağı (input focus) olmazlar Varsayılan davranış üzerine yazılabilir Label(): boş etiket Label(String text): sadece metin içeren etiket Label(String text, Node graphic)

Etiket Örneği Image image = new Image("http://www.clker.com/cliparts/B/4/f/p/f/v/whimsical-sun-th.png"); Label textlabel = new Label("text label"); Label graphiclabel = new Label(null, new ImageView(image)); Label mixedlabel = new Label("text and graphics", new ImageView(image)); rootnode.addall(textlabel, graphiclabel, mixedlabel); LabelExample Projesi

javafx.scene.control.button Düğme (Button): Üzerine tıklandığında bir tıklama efekti oluşturan görsel bileşenlerdir Labeled sınıfının alt sınıfı Button(): boş etiketli bir düğme Button(String text) Button(String text, Node graphic) javafx.event.actionevent: düğmeye basıldığında ortaya çıkan olay setonaction(eventhandler<actionevent> handler) handle(actionevent event) Düğmeye basılmayı simüle etmek için: fire()

Düğme Örneği Button button1 = new Button("button 1"); Button button2 = new Button("button 2", new ImageView( "http://www.clker.com/cliparts/5/9/c/2/1194984395619889880earth_glo be_dan_gerhrads_01.svg.thumb.png")); final Label label = new Label("no button pressed"); button1.setonaction(new EventHandler<ActionEvent>() { public void handle(actionevent event) { label.settext("button 1 pressed"); }}); button2.setonaction(new EventHandler<ActionEvent>() { public void handle(actionevent event) { label.settext("button 2 pressed"); }}); ButtonExample Projesi

javafx.scene.control.togglebutton İki durum: basılı(pressed) ve bırakılmış (released) javafx.scene.control.toggle arayüzünü gerçekleştirir Seçili ve seçili olmama durumları arasında geçisi sağlayan anahtar kontrolü setselected(boolean selected) boolean isselected() Labeled sınıfının alt sınıfı Metin, grafik veya ikisini birden içerebiliyor Durumu değiştiğinde ActionEvent olayını oluşturuyor Bu olayı program aracılığıyla yapay olarak oluşturmak için: fire()

ToggleButton Örneği ToggleButton button1 = new ToggleButton("button1"); ToggleButton button2 = new ToggleButton("button2"); Image selectedimage = new Image( "http://www.clker.com/cliparts/0/f/7/0/11954234311954389563ok_mark_ h_kon_l_vdal_02.svg.thumb.png"); EventHandler<ActionEvent> handler = new EventHandler<ActionEvent>() { public void handle(actionevent event) { ToggleButton btn = (ToggleButton) event.gettarget(); if (btn.isselected()) btn.setgraphic(new ImageView(selectedImage)); else btn.setgraphic(null); }}; button1.setonaction(handler); button2.setonaction(handler); ToggleButtonExample Projesi

javafx.scene.control.radiobutton Seçenek düğmesi (radio button): Genellikle birbirini dışlayan düğmeler için kullanılır ToggleButton sınıfından türetilmiştir Durumu değiştiğinde ActionEvent olayını oluşturur RadioButton(String text) Birbirini dışlama davranışını elde etmek için bir anahtar grubuna (toggle group) eklenirler javafx.scene.control.togglegroup settogglegroup(togglegroup group) fire() bir anahtar grubundaki bir seçenek düğmesinin başlangıç değeri olarak seçilmesi için kullanılabilir

Toggle ve ToggleGroup Bir anahtar (toggle) nesnesi bir anahtar grubu (toggle group) ile ilişkilendirilebilir settogglegroup(togglegroup group) ToggleGroup ta selectedtoggle özelliği tanımlıdır: gözlenebilir değer Seçili anahtar olası değişiklikler için gözlemlenebilir Tüm anahtar grubu için tek bir değişim dinleyicisi kullanılır Gruptaki her bir butonu ActionEvent olayları için dinlemek yerine Değişim dinleyicisi ChangeListener<Toggle> arayüzünü gerçekleştirir Bir gruptaki seçili anahtarı almak veya seçili anahtarı değiştirmek için: Toggle getselectedtoggle() selecttoggle(toggle value)

Seçenek Düğmesi Örneği RadioButton oddbutton = new RadioButton("odd"); RadioButton evenbutton = new RadioButton("even"); final Label label = new Label(); ToggleGroup group = new ToggleGroup(); oddbutton.settogglegroup(group); evenbutton.settogglegroup(group); group.selectedtoggleproperty().addlistener( new ChangeListener<Toggle>() { public void changed(observablevalue v, Toggle oldvalue, Toggle newvalue) { label.settext("selected button is " + ((RadioButton) newvalue).gettext()); } }); RadioButtonExample Projesi

javafx.scene.control.checkbox (1/2) Onay kutusu Varsayılan durumlar: onaylı (checked) ve onaylı değil (unchecked) Opsiyonel üçüncü durum: belirsiz (indeterminate) Durum değeri belirlenmediğinde veya alakasız bir durum oldupunda kullanılır Açık bir şekilde kullanılmak istendiği belirtilmelidir: setallowindeterminate(boolean enable)

javafx.scene.control.checkbox (2/2) Tıklandığında: Durumlar arasında döngüsel şekilde ilerlenir {checked, unchecked} veya {indeterminate, checked, unchecked} durumları Bir ActionEvent olayı oluşturulur boolean isselected() boolean isindeterminate()

Onay Kutusu Örneği final CheckBox checkbox = new CheckBox("my checkbox"); checkbox.setallowindeterminate(true); final Label label = new Label(); checkbox.setonaction(new EventHandler<ActionEvent>() { public void handle(actionevent event) { String state = checkbox.isindeterminate()? "indeterminate" : (checkbox.isselected()? "checked" : "unchecked"); label.settext("checkbox state is " + state); } }); CheckBoxExample Projesi

javafx.scene.control.combobox<t> Açılır kutu (Combo Box): Bir liste elemanlarından seçili bir tanesini gösterir Tıklandığında tüm listeyi gösterir T: liste elemanlarının tipi ComboBox(): boş liste ComboBox(ObservableList<T> items) O an seçili olan elemanı almak için: T getvalue() Seçili olan elemanı kod ile değiştirmek için: setvalue(t value) Seçili eleman değiştiğinde ActionEvent olayı oluşturulur

Açılır Kutu Örneği ArrayList<String> list = new ArrayList(); ObservableList<String> olist = FXCollections.observableList(list); olist.addall("sun", "mon", "tue", "wed", "thu", "fri", "sat"); final ComboBox<String> combobox = new ComboBox(oList); final Label label = new Label(); combobox.setonaction(new EventHandler<ActionEvent>() { public void handle(actionevent e) { label.settext("selected item: " + combobox.getvalue()); } }); ComboBoxExample Projesi

javafx.scene.control.slider Kaydırıcı (Slider): Belirli bir aralıktaki sayısal değerin seçilmesini sağlar Belirli bir yol üzerinde hareket eden topuz (knob) şeklinde gösterilir Opsiyonel özellikleris: İm işaretleri (tick marks): setshowtickmarks(boolean enabled) İm etiketleri: setshowticklabels(boolean enabled) Slider(double min, double max, double value) min ve max kabul edilebilir aralığı tnaımlar value: başlangıç değeri Slider değeri: JavaFX özelliği Değiştirilebilir, elde edilebilir ve gözlemlenebilir

Kaydırıcı Örneği Slider slider = new Slider(-10, 40, 3); slider.setshowtickmarks(true); slider.setshowticklabels(true); final Label label = new Label(); slider.valueproperty().addlistener(new ChangeListener<Number>() { public void changed(observablevalue<? extends Number> observable, Number oldvalue, Number newvalue) { label.settext("slider value: " + newvalue); } }); VBox rootnode = new VBox(slider, label); SliderExample Projesi

javafx.scene.control.listview<t> Seçilebilir elemanların bir listesini gösterir Varsayılan davranış: tek eleman seçimi Opsiyonel olarak çoklu seçim aktive edilebilir T: liste elemanlarının tipi Kaydırma çubukları (scrollbars)gerektiğinde otomatik olarak gösterilir ListView(): boş liste ListView(ObservableList<T> items) setorientation(orientation value) Orientation.VERTICAL, Orientation.HORIZONTAL

ListView Örneği ArrayList<String> list = new ArrayList(); ObservableList<String> olist = FXCollections.observableList(list); olist.addall("one", "two", "three", "four", "five"); ListView<String> vlist = new ListView(oList); ListView<String> hlist = new ListView(oList); hlist.setorientation(orientation.horizontal); ListViewExamples Projesi

javafx.scene.control.selectionmodel<t> Bir grup eleman içirisinde seçili elemanı ifade eder T: elemanların tipi int getselectedindex() T getselecteditem() select(int index) select(t item) ReadOnlyIntegerProperty selectedindexproperty() ReadOnlyObjectProperty<T> selecteditemproperty()

Çoklu Seçim Modeli Bir küme eleman içerisinden birden fazlasının seçilmesini sağlar javafx.scene.control.multipleselectionmodel<t> extends SelectionModel<T> ObservableList<Integer> getselectedindices() ObservableList<T> getselecteditems() Varsayılan davranış: tek eleman seçimine izin verilir Tekli ve çoklu seçim arasında geç,ş yapmak için: setselectionmode(selectionmode mode) SelectionMode.SINGLE, SelectionMode.MULTIPLE

ListView Seçim Modeli (1/2) Çoklu seçim modeli: MultipleSelectionModel<T> getselectionmodel() Eğer aktive edilmişse, çoklu seçim CTRL ve SHIFT tuşları ile yapılır Kullanıcı seçimindeki değişiklikler gözlemlenebilir: Seçim modelini elde et

ListView Seçim Modeli (2/2) Eğer tek seçim modu ise: Seçim modeli üzerinden selecteditem (veya selectedindex ) özelliğini elde et selecteditem (or selectedindex ) özelliği üzerine bir değişim dinleyicisi kaydet Eğer çoklu seçim modu ise: Seçim modeli üzerinden selecteditems (veya selectedindices ) gözlemlenebilir listesini elde et selecteditems (veya selectedindices ) gözlemlenebilir listesi üzerine bir InvalidationListener nesnesi kaydet

ListView Seçim Dinleyicisi Örneği (1/2) ArrayList<Character> list = new ArrayList(); ObservableList<Character> olist = FXCollections.observableList(list); olist.addall('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'); ListView listview = new ListView(oList); final Label label = new Label(); MultipleSelectionModel<Character> model = listview.getselectionmodel(); ReadOnlyObjectProperty<Character> sip = model.selecteditemproperty();... ListViewExamples Projesi

ListView Seçim Dinleyicisi Örneği (2/2)... sip.addlistener( new ChangeListener<Character> () { public void changed( ObservableValue<? extends Character> o, Character oldvalue, Character newvalue) { label.settext("selected item: " + ((newvalue!= null)? newvalue : "<none>")); } }); ListViewExamples Projesi

ListView Seçim Dinleyicisi Alıştırması Bir önceki örnekteki ListView için çoklu seçimi aktive edin Liste seçimi değişikliklerinden haberdar olmak için bir dinleyici tanımlayın Etiket üzerinde seçili olan elemanların listesini gösterin Etiketi listedeki seçim her değiştiğinde güncelleyin

ListView Seçim Dinleyicisi Alıştırması Çözümü model.setselectionmode( SelectionMode.MULTIPLE); model.getselecteditems().addlistener( new InvalidationListener() { public void invalidated( Observable observable) { label.settext("selected items: " + observable); } }); ListViewExamples Projesi