0

JAVAFX ListView Kullanımı – Örnek Proje

Javafx ile görsel projeler geliştirirken gayet önemli bir yeri olan listview kontrolünün nasıl kullanıldığını anlatan küçük bir projeyi sizlerle paylaşmak istiyorum. örnek mvc modeline göre yapıldığından model , view ve controller ‘ini ekleyerek göstermiş olacağım.  örnek çalıştığında şu şekilde bir ekran görüntüsü oluşacak.

 

 

 

 

 

 

 

 

 

 

 

//sample.fxml
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.layout.VBox?>
<BorderPane fx:controller="com.yazdoldur.ogretmenler.Controller"
            xmlns:fx="http://javafx.com/fxml" >

    <left>

        <ListView fx:id="lvMenu"  ></ListView>

    </left>
    <center>
        <VBox>
            <!-- VBox.vgrow ifadesi ile diger componentler yerine yerleşsin kalan bütün alan bu componentin olsun demek-->
        <TextArea VBox.vgrow="ALWAYS" fx:id="baslikArea" promptText="Yapılacak İşlem detayları"></TextArea>

        <Label fx:id="lblTarih" text="Tarih"></Label>
        </VBox>
    </center>
</BorderPane>
package com.yazdoldur.ogretmenler;
// Model classımız
import java.time.LocalDate;

public class Ogretmenler {


    String dersAdi;
    String ogretmenler;
    LocalDate tarih;

    public Ogretmenler(String baslik, String icerik, LocalDate tarih) {
        this.dersAdi = baslik;
        this.ogretmenler = icerik;
        this.tarih = tarih;
    }

    public String getDersAdi() {
        return dersAdi;
    }

    public void setDersAdi(String dersAdi) {
        this.dersAdi = dersAdi;
    }

    public String getOgretmenler() {
        return ogretmenler;
    }

    public void setOgretmenler(String ogretmenler) {
        this.ogretmenler = ogretmenler;
    }

    public LocalDate getTarih() {
        return tarih;
    }

    public void setTarih(LocalDate tarih) {
        this.tarih = tarih;
    }

    @Override
    public String toString() {
        return this.dersAdi;
    }
}
package com.yazdoldur.ogretmenler;

import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.TextArea;

import java.net.URL;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.ResourceBundle;

//Controller sınıfımız
public class Controller implements Initializable {

    ArrayList<Ogretmenler> ogretmenlerArrayList;

    @FXML
    ListView lvMenu;
    @FXML
    TextArea baslikArea;
    @FXML
    Label lblTarih;


  /*  @FXML
    public void mouseClick(){
    // FXML kısmdan onMouseClicked="#mouseClick" şeklinde eklersek bu metodu kullanırız

        ogretmenlerArrayList ogretmen=(ogretmenlerArrayList) lvMenu.getSelectionModel().getSelectedItem();

        System.out.println("Secilen baslik"+ ogretmen.getBaslik());
    }*/

    @Override
    public void initialize(URL location, ResourceBundle resources) {


        ogretmenlerArrayList=new ArrayList<>();
        ogretmenlerArrayList.add(new Ogretmenler("Matematik","AHMET AKMAN", LocalDate.of(2014,7,4)));
        ogretmenlerArrayList.add(new Ogretmenler("Fizik","HASAN YILMAZ", LocalDate.of(2010,6,5)));
        ogretmenlerArrayList.add(new Ogretmenler("Bilişim","VEYSEL SARI", LocalDate.of(2016,5,10)));
        ogretmenlerArrayList.add(new Ogretmenler("Sanat Bilgisi","MEHMET YILDIZ", LocalDate.of(2015,9,15)));
        ogretmenlerArrayList.add(new Ogretmenler("Beden Eğitimi","FEVZİ CİNGÖZ", LocalDate.of(2005,9,14)));

        lvMenu.getItems().setAll(ogretmenlerArrayList);



        lvMenu.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
            @Override
            public void changed(ObservableValue observable, Object oldValue, Object newValue) {
                if(newValue!=null){

                    Ogretmenler ogretmenler=(Ogretmenler) lvMenu.getSelectionModel().getSelectedItem();
                    baslikArea.setText(ogretmenler.getOgretmenler());
                    DateTimeFormatter formatter=DateTimeFormatter.ofPattern("dd - MM - yyyy");



                    lblTarih.setText("Kurumda İşe Başlama Tarihi  :"+ogretmenler.getTarih().format(formatter).toString());

                }
            }
        });

        lvMenu.getSelectionModel().selectFirst();
        //System.out.println(ogretmenlerArrayList);

    }



}

 

admin

Bir cevap yazın

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