JavaFX

JavaFX ile Label Kullanımı

Yazar : Burak Demir

Bu yazımda JavaFX 8 arayüz bileşenlerinden birisi olan Label kullanımını genel anlamda örneklerle açıklayacağım. JavaFX ile uygulama hazırlarken Label kullanımı için javafx.scene.control paketini import  etmemiz gereklidir.

JavaFX Label Oluşturma

JavaFX ile geliştirdiğiniz uygulamanıza label eklerken kodlarla label ekleme yapabileceğiniz gibi JavaFX Scene Builder isimli araçla da label ekleyebilirsiniz.

Label label1 = new Label("Label içinde yer alacak Metin");

Yukarıda yazmış olduğum kod ile JavaFX ile geliştirmiş olduğunuz uygulamanıza basit şekilde Label ekleyebilirsiniz.
Yukarıdaki JavaFX kodumuzda ilk önce label1 adında bir Label nesnesi oluşturduk ve bu oluşturduğumuz nesneye construct olarak içerisinde yer alacak metni gönderdik.

Eğer label içinde bir resim olmasını istiyorsanız onu da aşağıdaki şekilde yapabilirsiniz.

Image resim = new Image(getClass().getResourceAsStream("label.png"));
Label label2 = new Label("Label metni", new ImageView(resim));

Yukarıdaki kod ile işlem yaparken ilk önce resim adında Image nesnesi oluşturduk ve daha sonra resim adındaki nesnemizi label2 içerisinde kullandık.
JavaFX uygulamamızda resimlerle işlem yaparken resimlerimizin uygulama arka planı ile sorun çıkarmaması için Transparent arka plana sahip resimler kullanmanızı öneririm.

JavaFX ile Label üzerinde işlem yaparken oluşturmuş olduğunuz Label bileşeninize daha sonradan da metin veya resim ekleyebilirsiniz.

Label label1 = new Label();
//label içine sonradan metin eklemek için setText parametresi kullanılır.
label1.setText("Label içine gelecek metin");
//Label içine eklemek istediğimiz resmi resim adındaki Image nesnesine ekliyoruz.
Image resim = new Image(getClass().getResourceAsStream("label.png");
//label içine resim eklemek için setGraphic parametresini kullanıyoruz.
label1.setGraphic(new ImageView(resim));
//label içini istediğiniz bir renk ile doldurmak için setTextFill parametresi kullanılır.
label1.setTextFill(Color.web("#ff0000"));

Font İşlemleri

JavaFX label bileşeni ile çalışırken label içerisindeki metnin font biçimini değiştirmek isteyebilirsiniz. Bu işlemi JavaFX üzerinde iki şekilde yapabilirsiniz.

  • Font Sınıfının Construct metodunu kullanarak
  • Font Sınıfının font metodunu kullanarak
//Font sınıfının construct metodu kullanarak font değiştirme
label1.setFont(new Font("Arial", 30));
//Font sınıfının font metodunu kullanarak font değiştirme
label1.setFont(Font.font("Cambria", 32));

Yazdığınız metnin label bileşeninin uzunluğunu aştığı durumlarda metnin label içinde satır satır görünmesini istiyorsanız setWrapText parametresini kullanabilirsiniz.

Label label2 = new Label("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur ac mi dignissim, consectetur nibh in, ullamcorper eros. Curabitur in consectetur. ");
label2.setWrapText(true);

 Efekt İşlemleri

JavaFX ile oluşturmuş olduğunuz Label bileşeninize bazı efektler uygulamak isteyebilirsiniz. JavaFX animasyon ve efekt konusunda çok esnek bir dildir.

JavaFX ile Label bileşenimizi belirli bir yöne döndürmek istersek aşağıdaki gibi bir işlem yapabiliriz.

//label bileşenimizi döndürmek
Label label2 = new Label ("Lorem Ipsum");
label2.setFont(new Font("Cambria", 32));
label2.setRotate(270);
label2.setTranslateY(50);

Mouse ile label bileşenimiz üzerine geldiğimiz zaman bileşenimizin büyümesi ve mouse bileşenimiz üzerinden gidince tekrar eski haline dönmesini istiyorsanız setOnMouseEntered parametresi ile label bileşeninize efekt verebilirsiniz.

Label label2 = new Label ("Lorem Ipsum");
label2.setFont(new Font("Cambria", 32));

label2.setOnMouseEntered((MouseEvent e) -> { 
label2.setScaleX(1.5); 
label2.setScaleY(1.5); 
}); 

label2.setOnMouseExited((MouseEvent e) -> { 
label2.setScaleX(1); 
label2.setScaleY(1); 
});

Genel anlamda JavaFX ile label bileşeni kullanımı bu şekildedir. Daha detaylı bilgi almak isterseniz

Bu yazımda Oracle dökümanları basite indirgenerek Türkçe bir şekilde sunmayı hedefledim. Sorularınız olursa yorum yaparak ulaşabilirsiniz.

Yazar Hakkında

Burak Demir

Süleyman Demirel Üniversitesi Bilgisayar Mühendisliği öğrencisiyim. Yazılım, bilgi güvenliği, adli bilişim ve bir çok konuda meraklı !asosyal bir yazılımcı.

  • Selim Ayayurt

    JavaFX ile ilgili önerdiğiniz bir Türkçe kaynak var mı?

    • JavaFX ile ilgili detaylı bir Türkçe kaynak henüz yok. Whatisjavafx.net sayfası üzerinde javafx ile ilgili paylaşımlar yapılıyor. İngilizce olarak ta javafx ile ilgili kaynaklar her zaman olduğu gibi daha çok. Belirttiğim sayfası inceleyin. eğer javafx ile ilgili ingilizce kaynaklar işinizi görürse ulaşın oları paylaşayım.

  • Murat Ayyıldız

    Javafx ile label kullanımı konusunda güzel yazı olmuş. diğer javafx bileşenleri ile ilgili yazılarınızı bekliyorum.