crazy_coder
Moderatör
- Katılım
- 20 Şub 2026
- Mesajlar
- 204
- Tepkime puanı
- 0
- Puanları
- 16
JavaFX: Java Dünyasının Modern Yüzü
1. JavaFX Mimarisinin Temelleri: Scene Graph
JavaFX, Scene Graph (Sahne Grafiği) adı verilen hiyerarşik bir ağaç yapısı kullanır. Bu yapıda her bir görsel öğe (buton, metin kutusu, resim) birer "Node" (düğüm) olarak kabul edilir.
Stage (Sahne): Uygulamanın ana penceresidir. (Tiyatro sahnesinin kendisi gibi).
Scene (Saha): Pencerenin içindeki içeriktir. (Sahnede sergilenen oyun gibi).
Root Node: Sahnenin içindeki en üst kapsayıcıdır (Örn: BorderPane veya VBox).
2. Tasarımı Koddan Ayırmak: FXML ve Controller
JavaFX'in en güçlü yanlarından biri, arayüz tasarımını Java kodundan ayırmasıdır. Bu yaklaşım, Web geliştirmedeki HTML/JS ayrımına benzer:
FXML: XML tabanlı bir dosyadır. Butonların yeri, renkler ve düzen burada tanımlanır.
Controller: Java sınıfıdır. Butona tıklandığında ne olacağını (iş mantığını) belirler.
Scene Builder: Sürükle-bırak yöntemiyle FXML dosyaları oluşturmanızı sağlayan görsel bir araçtır.
3. JavaFX Yaşam Döngüsü
Bir JavaFX uygulaması standart main metodundan değil, Application sınıfını miras alan ve start metodunu ezen bir yapıdan başlar.
Java:
public class MerhabaJavaFX extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Merhaba De!");
btn.setOnAction(e -> System.out.println("Merhaba Dünya!"));
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("İlk Uygulamam");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
4. CSS ile Stil Verme ve Özelleştirme
Swing'in aksine, JavaFX öğelerini standart CSS (Cascading Style Sheets) kullanarak özelleştirebilirsiniz. Bir butonu yuvarlatmak, degradeler eklemek veya "Dark Mode" teması oluşturmak sadece bir .css dosyasına bakar.
CSS:
.button {
-fx-background-color: #2196F3;
-fx-text-fill: white;
-fx-font-size: 14px;
-fx-background-radius: 10px;
}
5. JavaFX'in Öne Çıkan Avantajları
| Özellik | Açıklama |
|---|---|
| Donanım Hızlandırma | Grafikleri işlemek için GPU'yu kullanır, bu da animasyonların akıcı olmasını sağlar. |
| Multimedia Desteği | Ses, video ve Web sayfalarını (WebView) uygulamanıza gömmek çok kolaydır. |
| Properties & Binding | Veri ile arayüzü birbirine bağlar (Örn: Slider hareket ettikçe metin boyutu otomatik değişir). |
Sonuç
JavaFX, bugün karmaşık finans uygulamalarından veri görselleştirme araçlarına kadar geniş bir yelpazede kullanılır. Eğer Java ile sadece konsol uygulamaları değil, kullanıcının etkileşime geçmekten keyif alacağı modern pencereler tasarlamak istiyorsan, JavaFX senin için en doğru duraktır.