[[oktatas:programozás:java:java_fx|< Java FX]]
====== Java FX Visual Studio Code ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2022
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== Telepítés =====
Szükséges szoftverek:
* JavaSE JDK
* JavaFX
* Visual Studio Code
JavaSE JDK:
* https://www.oracle.com/java/technologies/javase-downloads.html (2021)
JavaFX:
* https://gluonhq.com/products/javafx/ (2021)
* Szükséges operációs rendszertől függően:
* JavaFX Windows SDK
* JavaFX Mac OS X SDK
* JavaFX Linux SDK
Visual Studio Code:
* https://code.visualstudio.com/ (2021)
===== VSCode bővítmény =====
Szükséges bővítmény:
* JavaFX Support
* SceneBuilder extension for Visual Studio Code
===== A Java VSCode-ban =====
A JavaSE JDK feltelepíthető Visual Studio Code-ból is.
Ehhez hozzuk elő a parancs panelt:
* Ctrl + Shift + p
Kezdjük el írni:
Java
Válasszuk a következő lehetőséget:
Configure Java Runtime
Megjelenik a "Configure Java Runtime" felülete.
Az oldalon találunk egy [ Download ] gombot, amivel telepíthető a JavaSE JDK.
A már telepített Java verziók megtekinthetők a "Intalled JDKs" fülön.
Ha VSCode-on kívül telepítettünk JavaSE JDK-t, azok is megjelennek itt.
Telepítés után, indítsuk újra a Visual Studo Code-t.
===== JavaFX =====
Windows esetén kapunk egy ilyen fájlt:
* openjfx-11.0.2_windows-x64_bin-sdk.zip
Csomagoljuk ki, például:
C:\Users\janos\Library\openjfx
===== JavaFX projekt =====
Készítsünk egy JavaFX projektet.
Kattintsunk:
* View > Command Palette
Kezdjük el írni, és válasszuk:
Java: Create Java Create...
Legyen egy builder nélküli projekt.
Most hozzá kell adni a projekthez a JavaFX .jar fájlokat.
Nyissuk meg a létrehozott App.java fájlt.
Az oldalsávon megjelenik a "JAVA PROJECTS" nézet. Keressük meg a "**Referenced Libraries**" a fanézetben.
A felirat mellett kattintsunk a "+" gombra. Az előugró párbeszédablakban keressük meg a JavaFX lib
könyvtárban található .jar kiterjesztésű fájlokat. Válasszuk ki mindent.
* javafx.base.jar
* javafx.controls.jar
* javafx.fxml.jar
* javafx.graphics.jar
* javafx.media.jar
* javafx.swing.jar
* javafx.web.jar
* javafx-swt.jar
A fanézetben a "**Referenced Libraries**" alatt megjelennek a programozói könyvtárak.
Ugyanakkor a VSCode hivatkozást helyez el a projekt könyvtárában a következő fájlban:
* .vscode/settings.json
===== Kód a kezdéshez =====
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
public class App extends Application {
@Override
public void start(Stage stage) {
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 250);
stage.setScene(scene);
stage.setTitle("Valami");
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Ha most futtatjuk, hibát kapunk:
/usr/bin/env /usr/lib/jvm/java-17-openjdk-amd64/bin/java -XX:+ShowCodeDetailsInExceptionMessages -Dfile.encoding=UTF-8 @/tmp/cp_c28gippgcrq8r670mlunh45sf.argfile App
Error: JavaFX runtime components are missing, and are required to run this application
===== Konfiguráció hozzáadása =====
Adjunk konfigurációt a projektünkhöz:
* Run > Add configuration...
Létrejön a .vscode könyvtárban egy launch.json fájl, ami automatikusan
megnyílik. Alapértelmezetten két konfiguráció van benne. Nem kell többet
felvenni.
Vegyük fel a minden "request" tulajdonság után, saját "vmArgs" tulajdonságunkat.
A következő kódot **javítsuk** saját útvonal alapján:
Windows alatt is "/" jelek vagy kettő darab "\", azaz "\\" szükséges:
"vmArgs": "--module-path C:/Users/janos/Library/javafx-sdk-19/lib --add-modules javafx.controls,javafx.fxml",
A betűjel: "C:", elhagyható Windowson is.
Linuxon:
"vmArgs": "--module-path /home/janos/Library/javafx-sdk-19/lib --add-modules javafx.controls,javafx.fxml",
Ügyeljünk arra, hogy az útvonal a saját javafx-sdk helye legyen beállítva.
A program elkészült, futtatható.
{{:oktatas:programozas:java:java_fx:javafx_hello_app.png|}}
===== Alternatív indítás =====
* A Java projekt létrehozása után adjuk hozzá a függőségeket.
* Az akciósávon kattintsunk a "Run and Debug".
* To customize Run and Debug **create a launch.json file**.
{{:oktatas:programozas:java:java_fx:run_and_debug_create_a_launch.png|}}
* A mainClass legyen az induló osztály.
* A vmArgs tulajdonság számára állítsa be a javafx helyes útvonalát.
"configurations": [
{
"type": "java",
"name": "Launch App",
"request": "launch",
"mainClass": "App",
"vmArgs": "--module-path /home/janos/Library/javafx/javafx-sdk-19/lib --add-modules javafx.controls,javafx.fxml"
}
]
{{:oktatas:programozas:java:java_fx:run_and_debug_start_play.png|}}
Forrás:
* https://openjfx.io/openjfx-docs/ (2022)