[[oktatas:programozás:java:java_fx|< Java FX]]
====== Java FX Visual Studio Code - Maven ======
* **Szerző:** Sallai András
* Copyright (c) 2023, Sallai András
* Szerkesztve: 2024
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== VSCode beállítása =====
Bővítmény:
* SceneBuilder extension for Visual Studio Code
* Publisher: Bilal Ekrem Harmansa
A bővítmény beállítása:
* F1
* Kezdjük el gépelni: Scene Builder
* Tallózzuk ki a Scene Builder helyét
* Például: c:\Users\User\AppData\Local\SceneBuilder\
===== Projekt létrehozása =====
* F1
* Java: Create Java Project...
* JavaFX create from archetype
* Input group Id of your project: lan.zold
* Input artifact Id: app01
* [Select Destination Folder]
Terminálban:
* Define value for property 'version' 1.0-SNAPSHOT: :
Elég egy Enter vagy javítjuk a verziót.
Utána kéri a megerősítést:
Y: :
Enter-rel tovább megyünk.
Jobbra lent egy párbeszédablakban:
(i) Maven project [app01] is created under:
/home/janos/dev/app01
Source: Maven for Java (Extendsion) [Open] [Add to Workspace]
{{:oktatas:programozas:java:java_fx:project_created.png|}}
Kattintsunk az Ok gombra.
Az eredeti ablakot bezárhatjuk.
Nyissuk meg a projektet.
===== Függőségek lekérdezése =====
mvn dependency:tree
===== Könyvtárszerkezet =====
app01/
|-src/main/
| |-java/
| | |-lan/zold/
| | | |-App.java
| | | |-PrimaryController.java
| | | `-SecondaryController.java
| | `-module-info.java
| `-resources/lan/zold/
| |-primary.fxml
| `-secondary.fxml
|-target/
`-pom.xml
===== Futtatás =====
Az App.java fájlban a Run segítégével.
Ha van mvn parancs, parancssorból:
mvn clean javafx:run
===== Lehetséges hibák =====
==== Stage figyelmeztetés ====
A program így is fut, de a start() metódus Stage bemenő típusára hibát ír. Ennek megoldása:
Vegyük fel egy újabb függőséget a module-info.java fájlban:
requires transitive javafx.graphics;
module com.example {
requires transitive javafx.graphics; //<--
requires javafx.controls;
requires javafx.fxml;
opens com.example to javafx.fxml;
exports com.example;
}
==== JAVA_HOME változó ====
Hibaüzenet:
he JAVA_HOME environment variable is not defined correctly,
this environment variable is needed to run this program.
Szerkesszük a beállításokat:
* c:\Users\User\AppData\Roaming\Code\User\settings.json
A JAVA_HOME helytelen beállítása esetén, állítsunk be a rendes útvonalat:
"terminal.integrated.env.linux": {
"JAVA_HOME": "/usr/lib/jvm/java-17-openjdk-amd64"
},
"terminal.integrated.env.windows": {
"JAVA_HOME": "c:/Program Files/Java/jdk-17"
},