Bij Java denken de meeste mensen aan een server-side programmeertaal die gebruikt wordt bij grote bedrijven zoals banken e.d. Een tweede stroming is natuurlijk mobiele apps voor Android. Maar wanneer je praat over desktop applicaties, dan verdwijnt Java uit beeld.
Echter, met Java kun je prima desktop applicaties maken. Je hebt de keuze uit verschillende GUI technologieen, maar 2 zijn echter de beste keus: JavaFX of Swing.
JavaFX is de opvolger van Swing en is nu een open source project geworden waar actief aan wordt gewerkt: https://github.com/openjdk/jfx. Swing bestaat langer en heeft een hele grote community. Echter, Swing wordt niet actief doorontwikkeld, maar JavaFX wel. Een bijkomend voordeel van JavaFX is dat JavaFX applicaties ook geschikt gemaakt kunnen worden voor Android en iOS m.b.v. Gluon Mobile.
7 maart 2020 is JavaFX 14 gereleased en deze bevat weer een hoop nieuwe functies.
In dit artikel laat ik je zien hoe je een kale desktop applicatie met JavaFX kunt maken.
Benodigdheden:
- Java JDK 11+
- Maven
- IntelliJ IDE
Stappen
- Maak een nieuw Maven project aan in IntelliJ
- Voeg de benodigde referenties naar JavaFX toe aan pom.xml
- Run het project
aanmaken Maven project
Maak een nieuw Maven project aan in IntelliJ. Gebruik daarbij het archetype van JavaFX. Als het archetype nog niet bestaat maak hem dan aan met de volgende waarden:
groupId: org.openjfx artifactId: javafx-maven-archetypes version: 0.0.1
Klik op Next en vul in het volgende scherm voor het veld ArtifactId in, de waarde:
Value: javafx-archetype-fxml
Klik Finish.
pom.xml referenties
Voeg de volgende XML toe aan pom.xml:
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11.0.2</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11.0.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.1</version>
<configuration>
<mainClass>org.example.App</mainClass>
</configuration>
</plugin>
</plugins>
</build>
Run het project
Als je goed hebt gekeken, zul je gezien hebben dat er standaard al 3 Java klassen aangemaakt zijn.
- App
- PrimaryController
- SecondaryController
De begincode is dus al voor je geschreven! Het enige wat je hoeft te doen is het project te builden en runnen. Run de main in klass App en je krijgt een kant-en-klare desktop app, waarin je met een knop tussen 2 schermen kunt switchen.