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
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ın
GUI 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şturun
Son 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 ekleyin
Run
- 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öşesinden Scene 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
Anlatıcı video için buraya bakabilrisin
Maven xml verilerini, pom.xml
dosyasında geösterilen alana yapıştırın.
TODO alanlarını düzenlemeyi unutmayın
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.yemreak</groupId> <!-- TODO: Kodların bulunduğu ana package ismi--><artifactId>ytoolsfx</artifactId> <!-- TODO: Modül ismi --><version>1.0.0</version> <!-- TODO: Sürüm numarası --><!-- Buraya yapıştırılacak --></project>
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>12</maven.compiler.source><maven.compiler.target>12</maven.compiler.target></properties><dependencies><dependency><groupId>org.openjfx</groupId><artifactId>javafx-controls</artifactId><version>12</version></dependency><dependency><groupId>org.openjfx</groupId><artifactId>javafx-fxml</artifactId><version>12</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version><configuration><release>12</release><source>8</source><target>8</target></configuration></plugin><plugin><groupId>org.openjfx</groupId><artifactId>javafx-maven-plugin</artifactId><version>0.0.2</version><configuration><release>12</release><jlinkImageName>ytoolsfx</jlinkImageName> <!-- TODO: Modül ismi --><launcher>launcher</launcher><mainClass>ytoolsfx/com.yedhrab.applications.MainApp</mainClass> <!-- TODO: Main classının yolu --></configuration></plugin></plugins></build>
⇧ Shift + F10 ile projeyi çalıştırmanızı sağlar
Edit Configuration + + + maven
Command Line alanına javafx:run
yazın
Before 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.
View
- Show Sample Controller Skeleton
ile Controller'a yazılacak kodu görebiliriz
Sol alttaki alandan Controller
içerisinde
Controller Class
alanına <package>.Controller
yazarak Controller class'ını görmesini sağlıyoruz
Sol alttaki code
alanındakiler Controller'a aktarılacaktır
Her importta javafx.scene
olması lazımdır
Image vs..
Sağ taraftaki code
alanındaki fx:id
kısmında ismi yazacak (Controller'dan erişmek için)
[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 😢
export PATH_TO_FX_MODS=path/to/javafx-jmods-12.0.1$JAVA_HOME/bin/jlink --module-path $PATH_TO_FX_MODS:mods/production --add-modules hellofx --output jrejre/bin/java -m hellofx/org.openjfx.MainApp
Çı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
IntelliJ üzerinde java ile gelen fx:deploy
özelliği kaldırılmıştır (java 11+)
Projeyi Build sekmesinden Rebuild Edin
tekrar deneyin.
Jar dosyalarını Java 12 JVM ile çalıştırmamanızdan kaynaklanır
Java 12 derleyicisi target 12
, bytecode 56
değerlerine sahiptir
Java 8 bytecode 52
değerine sahiptir
Bir 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)
Kaynak