• Anasayfa
  • Hakkımızda
  • Etkinlikler
  • Destek Verin
  • Site Haritası
  • Giriş Yap
  • Üye Ol
  • Facebook
  • Twitter
  • RSS
Yazılım Dilleri
  • Soru - Cevap
  • EĞİTİM SETİ
  • KATEGORİ
  • DUYURU
  • TEKNOLOJİ HABERLERİ

Son Sorular

  • 23.04.2016 00:55:33C programlama 2 oyun
  • 20.04.2016 16:34:41Local Database
  • 15.04.2016 14:26:15Fatura kayıt işlemi
  • 21.03.2016 01:55:30C# problem

Popüler Sorular

  • 27.05.2012 05:49:50Asp.Net ile Date time alana veri ekleyemiiyorum ?
  • 2.04.2012 00:45:18.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 12.05.2012 08:44:49Acil Yardım
  • 27.05.2012 13:46:51veri tabanı bağlantısı
  • .Net Framework
  • 8085 Assembly
  • Active Directory
  • ADO.NET
  • Android
  • Apple IOS
  • Arduino
  • ASP.NET
  • ASP.NET MVC
  • Blackberry
  • C#.Net
  • C++
  • CCG Framework
  • CISCO
  • CSS
  • Diğer
  • Dreamweaver
  • Entity Framework
  • Exchange Server
  • Gömülü Sistemler
  • GSM Programlama
  • Güncel
  • Güvenlik
  • HTML5
  • Java
  • Javascript / JQuery
  • Jira
  • Kariyer ve İş Yaşamı
  • LINQ
  • LibreOffice
  • Linux
  • Matlab
  • Microsoft Dynamics CRM
  • Mobil Uygulama Geliştirme
  • MySQL
  • NoSQL
  • Oracle
  • OWIN
  • PFSense
  • PHP
  • Powershell
  • Python
  • Sanallastirma
  • SAP-ABAP
  • SCOM 2012
  • SEO
  • Sharepoint 2010
  • Sharepoint 2013
  • Silverlight
  • Sistem Analiz ve Tasarımı
  • SQL Server
  • Symantec
  • TFS
  • T-SQL
  • Ubuntu
  • VB.NET
  • Veritabanı Yönetim Sistemleri
  • Visual Studio
  • VMware
  • WCF
  • Web Hosting
  • Windows 8
  • Windows Azure
  • Windows Phone 7.1
  • Windows Phone 8
  • Windows Server
  • Wordpress
  • WPF
  • Xamarin
  • XNA
  • Yazılım Mühendisliği
  • Yöneylem Araştırması
  • ASP.NET MVC
  • Entity Framework
  • Javascript / JQuery
  • LINQ
  • PHP

Son Duyurular

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

JavaFX ile Efektlerin Kullanımı

Bildiğiniz gibi JavaFX bize masaüstü projelerde ve Applet’lerde kullanabileceğimiz yepyeni component’ler yani kontroller sunuyor. Bu kontroller sadece güzel görünmekle kalmıyor, üzerlerine efektler de uygulanabiliyor.

03.09.2012

Yazar: Numan Karaaslan (Google+)

Kategori: Java

3586

Merhaba yeni bir makale ile karşınızdayım.

Bu makalede JavaFX ile kullandığımız kontrollere ekleyebileceğimiz efektlerden bazılarına bakacağız.

Bildiğiniz gibi JavaFX bize masaüstü projelerde ve Applet’lerde kullanabileceğimiz yepyeni component’ler yani kontroller sunuyor. Bu kontroller sadece güzel görünmekle kalmıyor, üzerlerine efektler de uygulanabiliyor. JavaFX içindeki bütün efektler “javafx.scene.effect” paketi içinde bulunmaktadır. Burada bir not düşmek gerekiyor. Bu efektleri doğru bir biçimde kullanabilmek biraz görüntü işleme hakkında bilgi sahibi olmayı gerektiriyor.

Öncelikle Netbeans ile yeni bir proje açalım. “File => New Project” ve JavaFX kategorisinde JavaFX Application. Şablon olarak karşımıza çıkan kodlarda en yukardaki import listesini ve override edilmiş Start metodunu aşağıdaki gibi yazalım.

import javafx.application.Application;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.control.ButtonBuilder;

import javafx.scene.effect.Blend;

import javafx.scene.effect.BlendMode;

import javafx.scene.effect.ColorInput;

import javafx.scene.paint.Color;

import javafx.scene.paint.CycleMethod;

import javafx.scene.paint.LinearGradient;

import javafx.scene.paint.Stop;

import javafx.scene.shape.Rectangle;

import javafx.scene.text.Font;

import javafx.scene.text.FontWeight;

import javafx.scene.text.Text;

import javafx.stage.Stage;

@Override

    public void start( Stage primaryStage )

    {

        Button btn = new Button();

        btn.setText("Blur efekti");

        btn.setPrefWidth(90);

        btn.setPrefHeight(30);

        btn.setLayoutX(20);

        btn.setLayoutY(10);

// Boyutları ve arayüzde bulunacağı konumu vererek bir buton oluşturuyoruz.

        btn.setEffect(javafx.scene.effect.BoxBlurBuilder.create().width(2).height(2).build());

// Butona effekt vermek için SetEffect metodunu kullanıyoruz.

// Burada BoxBlur efekti ile bulanıklaştırma yapıyoruz. Bunu 2 X 2 boyutlarında bir matris ile gerçekleştiriyoruz. Bu boyutlar büyüdükçe bulanıklık artacaktır.

        Button btn_2 = ButtonBuilder.create().layoutX(130).layoutY(10).prefWidth(100).prefHeight(25).text("bloom").build();

// Yeni bir buton.

        btn_2.setEffect(javafx.scene.effect.BloomBuilder.create().threshold(0.8).build());

// Burada Bloom efektini kullanıyoruz. Bu efekt “threshold” yani eşik değeri üstündeki renkleri daha parlak yaparak bir çeşit Glow efekti oluşturmaktadır. Bu eşik değeri küçüldükçe parlama artacaktır.

        Button btn_3 = ButtonBuilder.create().layoutX(20).layoutY(70).prefWidth(100).prefHeight(25).text("drop shadow").build();

// Yeni bir buton

btn_3.setEffect(javafx.scene.effect.DropShadowBuilder.create().width(80).height(30).build());

// Burada arka tarafa gölge düşürmek için DropShadow efektini kullanıyoruz. Bu efekti oluştururken gölgeye en ve boy özellikleri veriyoruz. İstersek Spread değeri vererek yayılmasını yada OffsetX ve OffsetY değerleri de vererek sağa sola yada aşağı yukarı kaymasını sağlayabiliriz.

        Button btn_4 = ButtonBuilder.create().layoutX(150).layoutY(70).prefWidth(100).prefHeight(25).text("reflection").build();

// Yeni bir buton

        btn_4.setEffect(javafx.scene.effect.ReflectionBuilder.create().fraction(0.8).build());

// Burada belirlenen fraction ile yansıma efekti oluşturuyoruz. Fraction değeri yansımanın canlılığını belirlemektedir. Ayrıca bu efekte TopOpacity ve BottomOpacity değerleri vererek yansımanın en alt ve en üst saydamlık değerlerini belirleyebiriliz.

        Blend blend = new Blend();

        blend.setMode(BlendMode.COLOR_BURN);

// Burada Color_burn modunu kullanan bir blend efekti oluşturacağız. Blend efekti üst üste gelen kontrollerin renklerine ve blend moduna göre çizilmesini sağlar.

        ColorInput colorInput = new ColorInput();

        colorInput.setPaint(Color.STEELBLUE);

        colorInput.setX(20);

        colorInput.setY(150);

        colorInput.setWidth(100);

        colorInput.setHeight(180);

// STEELBLUE renginde bir dikdörtgen çizmek için ColorInput nesnesini kullanabiliriz.

        blend.setTopInput(colorInput);

        Rectangle rect = new Rectangle();

        rect.setLayoutX(45);

        rect.setLayoutY(150);

        rect.setWidth(220);

        rect.setHeight(100);

// Burada bir dikdörtgen daha çizdiriyoruz ve boyutlarını ve koordinatlarını veriyoruz.

        Stop[] stops = new Stop[]

        {

            new Stop(0, Color.LIGHTSTEELBLUE), new Stop(1, Color.PALEGREEN)

        };

// LinearGradient efektinde kullanmak için iki adet renk belirliyoruz. Bunun için “Stop” türünde bir nesne oluşturmamız gerekiyor.

        LinearGradient lg = new LinearGradient(0, 0, 0.25, 0.25, true, CycleMethod.REFLECT, stops);

// LinearGradient efektini ise 0 x 0 koordinatlarından başlayacak ve REFLECT modunda yani renkleri yansımalı olarak gradient edecek şekilde oluşturduk. Reflect yerine “repeat” yada “norepeat” de olabilirdi.

        rect.setFill(lg);

// Dikdörtgeni lineargradient ile dolduruyoruz.

        Text text = new Text();

        text.setX(25);

        text.setY(195);

        text.setFill(Color.GREEN);

        text.setText("Renkli Yazı");

        text.setFont(Font.font(null, FontWeight.BOLD, 30));

// Text kontrolünü de Blend efektinde görmek için bir text nesnesi yani Label oluşturuyoruz.

        Group gr = new Group();

        gr.setEffect(blend);

        gr.getChildren().addAll(rect, text);

// Dikdörtgen ve Text kontrollerini “gr” isimli gruba atıyoruz.

        Group root = new Group();

        root.getChildren().addAll(btn, btn_2, btn_3, btn_4, gr);

// Yeni bir grup içerisine bütün kontrollerimizi koyuyoruz.

        Scene scene = new Scene(root, 300, 400);

        primaryStage.setTitle("JavaFX efektler");

        primaryStage.setScene(scene);

        primaryStage.show();

// Sahne (scene) özelliğini belirlediğimiz stage nesnesinin görünür olması için Show metodunu kullanıyoruz.

    }

Kodlar çalıştırıldıktan sonraki ekran çıktısı şu şekilde olacaktır:

 

Özetle JavaFX kontroller üzerinde uygulayabileceğimiz güzel efektler sunuyor ve bu efektler JavaFX teknolojisi ekran kartının gücünü kullandığı için bilgisayarımızı fazla yormuyor.

Bir sonraki yazımızda görüşmek üzere.

Numan Karaaslan

Bilgisayar Mühendisi

 

Yazar Hakkında

Numan Karaaslan

Numan Karaaslan

www.facebook.com/numank

Bilgisayar Mühendisi işte :)

Sosyal Medya

ORANLAR

  • 3586izleme

Arkadaşlarınla Paylaş

  • Tweet

0 Yorum

Yorum Yaz / Soru Sor

Lütfen yorum yazmak veya soru sormak için üye girişi yapınız.

Son Yorumlar

  • Hocam Link başka sayfaya yönlendiriyor.
  • merhaba benim merak ettiğim bir konu var y...
  • Merhaba download linki çalışmıyor. Rica et...
  • Nevzat Bey selamlar, Açıkçası bizler a...
  • Parametreleri Cache İşleminden Yalıtma kon...

En Güncel Sorular

  • Bilgilendirme maili (C#.Net)
  • Power Pivot (Sharepoint 2010)
  • BigInteger, BigDecimal (Asp.Net ve Asp.Net MVC)
  • visual C# ile asp nette veritabanı islemleri (Asp.Net ve Asp.Net MVC)
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ? (Sharepoint 2010)

En Son Cevap Verilen Sorular

  • Bilgilendirme maili
  • BigInteger, BigDecimal
  • visual C# ile asp nette veritabanı islemleri
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ?
  • txt dosyasına veri yazma

Twitter

Takip et: @yazilim_dilleri

En Çok Okunanlar

Elif BAYRAKDAR

C# ile SQL Server Bağlantısı, Insert, Update ve Delete Sorguları

23.05.2013

  • 120154
  • 0
Hakan Keskin

C# ile Windows Service Projesi Oluşturma, Debug Etme ve Setup Hazırlama

17.12.2013

  • 65271
  • 0
batuhan avlayan

Php - Mail Gönderme (İletişim Formu)

02.09.2013

  • 48392
  • 0

Sponsorlar

KODLAB
Pluralsight
Exchange server is
Office 365
YAZILIM DİLLERİ
Yukarı Çık
  • Hakkımızda
  • Facebook
  • Twitter
  • RSS

© Yazılım Dillerinin Buluşma Noktası | Kaynak belirtildiği sürece makaleler kopyalanabilir.
YazilimDilleri.Net sitesinde yer alan kullanıcıların oluşturduğu tüm içeriklerin yayınlanması ile ilgili yasal yükümlülükler içeriği oluşturan kullanıcıya aittir, YazilimDilleri.Net hiçbir şekilde sorumlu değildir.

Kapat

Giriş Yap

Kullanıcı Adı

Şifre

Şifremi Unuttum

KULLANICI GİRİŞİ