🌃GUI Tasarımı | JavaFX
JavaFX ile javada görsel arayüze sahip uygulama yapımı
📢 Önemli Bilgi
JavaFX artık JDK 12'nın bir parçası değildir, buradan gerekli bilgilere erişebilirsin.
Java SDK 8 ile depoy edebilmektesin
Deploy etme hususunda bilgi almak için buraya bakabilirsin
👷♂️ IntelliJ için JavaFx Kurulumu
JavaFX ve JFhoenix Material UI'ı kurulumunu anlatan videom için buraya bakabilrisin 💁♂️
İlk olarak IntelliJ'yi indirin
Resmi sitesinden JavaFX SDK'sını indirin
İndirdiğiniz arşivdeki çıkartın
Arşivdeki
javafx-sdk-12.0.1
dosyasınıC:\Program Files\Java
dizinine taşıyınGUI düzenleme aracı olan Scene Builder'ı indirin
IntelliJ üzerinden
File
-Settings
-Languages & Frameworks
-JavaFx
kısmına Scene Builder'ın yolunu yazın.Örn: C:\Program Files\SceneBuilder\SceneBuilder.exe
IntelliJ üzerinden
File
-New
-Project
-JavaFX
-Next
-Finish
ile projenizi oluşturunSon olarak
File
-Project Structure
-Modules
Açılan ekranda
+
-Library
-Java
Çıkan ekran ile
C:\Program Files\Java\javafx-sdk-12.0.1\lib
kütüphanesini ekleyinRun
-Edit Configurations
Çıkan ekranda
VM Opitons
alanına alttaki metni kopyalayın:--module-path "C:\Program Files\Java\javafx-sdk-12.0.1\lib" --add-modules=javafx.controls,javafx.fxml
Artık
.fxml
uzantılı dosyalarda ekranın sol alt köşesindenScene Builder
'a tıklayarak GUI programlamaya başlayabilirsiniz ✨
Not sizin sürümünüz ve yolunuz farklı ise ona göre ayalayın
<yol>\javafx-sdk-<version>\lib
🍱 Maven ile Modüler JavaFX Kurulumu
Anlatıcı video için buraya bakabilrisin
📃 pom.xml içeriği
Maven xml verilerini, pom.xml
dosyasında geösterilen alana yapıştırın.
TODO alanlarını düzenlemeyi unutmayın
🎈 Maven ile Başlangıç Yapılandırması
⇧ Shift + F10 ile projeyi çalıştırmanızı sağlar
Edit Configuration + + + maven
Command Line alanına
javafx:run
yazınBefore launch: Activate Tool Windov alanınındaki + butonuna tıklayın
Run maven goal'ı seçin
javafx:compile
yazıp kaydedin
Ana kaynak JavaFX and IntelliJ Moduler with Maven yazısıdır.
Project Structures - Libraries kısmında + butona basın
Çıkan ekranda From Maven yazısına tıklayın ve
org.openjfx:javafx-maven-plugin:0.0.2
yazıp indirin.
🧱 JavaFX Scene Builder
View
-Show Sample Controller Skeleton
ile Controller'a yazılacak kodu görebilirizSol alttaki alandan
Controller
içerisindeController Class
alanına<package>.Controller
yazarak Controller class'ını görmesini sağlıyoruz
Sol alttaki
code
alanındakiler Controller'a aktarılacaktırHer importta
javafx.scene
olması lazımdırImage vs..
Sağ taraftaki
code
alanındakifx:id
kısmında ismi yazacak (Controller'dan erişmek için)
🔨 Scene Builder Yapılandırması
[JFoenix] framework'ü kullanıldığından Scene Builder'ın library'lerine dahil edilmesi lazımdır.
Sol üst kısımda Library sekmesinin en sağındaki ⚙ tıklayın
JAR/FXML Management - Add Library/FXML from file system linkine tıklayın
İndirdiğiniz [JFoenix] dosyasının
jar
'ını bulup, seçin.Check All ve Built in ayarları ile dahil edin.
FXML dosyası ile Controller vs Resimlerin aynı package içerisinde olmaması durumunda Scene Builder öneri yapamaz 😢
💿 JavaFX RunTime Images
🐛 Hata Notları
📌 class com.sun.javafx.fxml.FXMLLoaderHelper (in unnamed module @0x24782c87) cannot access class com.sun.javafx.util.Utils (in module javafx.graphics) because module javafx.graphics:
Çıkan ekranda
VM Opitons
alanına alttaki metni kopyalayın:--module-path "C:\Program Files\Java\javafx-sdk-12.0.1\lib" --add-modules=javafx.controls,javafx.fxml
📍 Error: Java FX Packager: Can not build artifact - fx: deploy is not available in this JDK
IntelliJ üzerinde java ile gelen
fx:deploy
özelliği kaldırılmıştır (java 11+)
📌 Error:Kotlin: The Kotlin standard library is not found in the module graph. Please ensure you have the 'requires kotlin.stdlib' clause in your module definition
Projeyi Build sekmesinden Rebuild Edin
tekrar deneyin.
📍 ** has been compiled by a more recent version of Java Runtime(class file version 56.0), this version of Java Runtime only recognizes class file versions up to 52.0
Jar dosyalarını Java 12 JVM ile çalıştırmamanızdan kaynaklanır
Java 12 derleyicisi
target 12
,bytecode 56
değerlerine sahiptirJava 8
bytecode 52
değerine sahiptirBir yerde kalmış olan Java 8 JVM'ine sahip olabilirsiniz
That's because you're not running the jars on a Java 12 JVM. You built them with a Java 12 compiler and targeted release 12. Java 12 is bytecode version 56. 52 is Java 8. You have an old Java 8 JVM somewhere and that's what you're running.
Either run with the Java 12 java or recompile using javac --release 8 ...
(And that's not a JNI error)
🔗 Faydalı Bağlantılar
Last updated