Comment on page
🌃
GUI Tasarımı | JavaFX
JavaFX ile javada görsel arayüze sahip uygulama yapımı
- İndirdiğiniz arşivdeki çıkartın
- Arşivdeki
javafx-sdk-12.0.1
dosyasınıC:\Program Files\Java
dizinine taşıyın - 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öş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 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
- 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çerisindeController 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ındakifx:id
kısmında ismi yazacak (Controller'dan erişmek için)
- 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 jre
jre/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
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)
Last modified 1mo ago