Grafikus alkalmazások JavaFX-szel¶
A következőkben az eddig tanultakat kiegészítve, már nem csak konzolos alkalmazásokat, hanem grafikus programokat is fogunk készíteni.
Bevezetés¶
A JavaFX a Java programozási nyelvhez fejlesztett grafikus keretrendszer, amelyet a Java SE 8 részeként adtak ki. A JavaFX a Java Swing utódja, de a JavaFX-et nem csak a Swinggel, hanem a Java 2D API-val és a JavaFX Scripttel is összehasonlítják.
Telepítés¶
Az IntelliJ IDEA-ban a JavaFX-et nem kell külön telepíteni, mert a JavaFX SDK része a JDK 11-nek. A JavaFX SDK-ban található a JavaFX Runtime, a JavaFX könyvtárak és a JavaFX-eszközök. A JavaFX-eszközök közé tartozik a Scene Builder, amely egy grafikus felületet biztosít a JavaFX alkalmazások felhasználói felületének megtervezéséhez.
JavaFX projekt létrehozása¶
A JavaFX projekt létrehozása a következőképpen történik:
- Indítsuk el az IntelliJ IDEA-t.
- Kattintsunk az New Project gombra.
- Bal oldalt állítsuk be a Generators-nél a JavaFX-et.
- Kattintsunk a Next gombra.
- Kattinsunk a Create gombra.
Futtatás¶
Az elkészült JavaFX projektet a HelloApplication.java
futtatásával tudjuk kipróbálni, amely tartalmazni fog egy alap UI-t, amely a következőképpen néz ki:
Felépítés¶
Mint a lenti ábrán is látható, egy JavaFX alkalmazás három részből épül fel.
- A programnak van egy belépési pontja, amely a
HelloApplication.java
fájlban található. - A programnak van egy vezérlője, amely a
HelloController.java
fájlban található. Ez a vezérlő fogja kezelni a felhasználói felületen történő eseményeket, például a gomb megnyomását. - A programnak van egy felhasználói felülete, amely a
hello-view.fxml
fájlban található. Ez a felhasználói felület fogja megjeleníteni a program állapotát.
flowchart TD
A[HelloApplication]
B(HelloController)
C(hello-view.fxml)
A --> B & C
B <--> C
Mappastruktúra¶
A konkrét Java kódokat tartalmazó fájlok a src/main/java
mappában találhatóak, míg JavaFX-hez tartozó fájlok a src/main/resources
mappában találhatóak. Ennek az az oka, hogy a JavaFX-hez tartozó fájlok nem tartalmaznak Java kódot, hanem XML-hez hasonló nyelven írtak, amelyek a felhasználói felületet írják le.
demo
├── .mvn
│ └── wrapper
│ ├── maven-wrapper.jar
│ ├── maven-wrapper.properties
│ └── MavenWrapperDownloader.java
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com.example.demo
│ │ │ ├── HelloApplication.java
│ │ │ └── HelloController.java
│ │ └── resources
│ │ └── com.example.demo
│ │ └── hello-view.fxml
│ └── test
│ └── (...)
├── .gitignore
├── mvnw
├── mvnw.cmd
└── pom.xml