JavaFX von der IDE bis zur Auslieferung Teil 2: Der erste Start

 Im letzten Teil haben wir die Konfigurationsdatei für Maven für unser erstes Projekt eingerichtet.

In diesem Teil werden wir zum ersten Mal unser Projekt erfolgreich zum Laufen bringen.

Wir legen in den Resourcen nun eine Datei mit der Endung .fxml ein. Dazu legen wir einen Ordner in dem Ordner resources an, den wir fxml nennen. Dort legen wir nun eine Datei Main.fxml an. Dies können wir über das Kontext-Menu der Entwicklungsumgebung erreichen, dort wählen wir New und darin FXML-File aus. Diese Datei lassen wir nun erst einmal so.

Nun wechseln wir in den Ordner java und dort in das Package, das wir am Ende des letzten Teils erstellt haben.

Dort erstellen wir die Java-Klasse HalloJavaFX und ein Package mit dem Namen controller. In diesem Package legen wir den Controller ab, der zu unserer Hauptanwendung gehört. Diese Java-Klasse nennen wir MainController.java. JavaFX funktioniert nach dem Programmierparadigma MVC, mehr dazu können Sie zum Beispiel in Wikipedia nachlesen.

Wir öffnen die Datei MainController.java und fügen implements Initializable hinter dem Namen der Klasse ein. Nun wird dieser Teil rot markiert, um dies zu ändern klappen wir das Kontext-Menu auf und akzeptieren, was die Entwicklungsumgebung über import etc zu bemängeln hat.

package de.domjos.HalloJavaFX.controller;

import javafx.fxml.Initializable;

import java.net.URL;
import java.util.ResourceBundle;

public class MainController implements Initializable {
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {

}
}

Die Datei sollte nun wie folgt aussehen. Damit JavaFX eine Datei als Controller erkennt, muss Sie die Schnittstelle Initializable implementieren, welche die Methode initialize mit sich bringt. In diese Methode schreiben Sie später, was zum Beispiel passieren soll, wenn die Nutzer auf einen Knopf drückt.

Nun haben wir den ersten Controller korrekt definiert und er sollte von der FXML-Datei auch gefunden werden. Dazu wechseln wir nun zurück in die FXML-Datei und ändern den Wert der in fx:controller steht. Wir geben den Package-Namen ein, der in der ersten Zeile des Controllers steht und nach dem Package Name auch noch den genauen Namen der Controller-Klasse.

Die Datei sollte nun wie folgt oder zumindest so ähnlich aussehen:

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:controller="de.domjos.HalloJavaFX.controller.MainController"
prefHeight="400.0" prefWidth="600.0">

</AnchorPane>

 Nun haben wir erfolgreich die erste Oberfläche mit dem entsprechenden Controller verbunden.

Um jetzt die erste JavaFX-Applikation zu starten wechseln wir nun in die Datei HalloJavaFX die wir in diesem Tutorial ganz am Anfang erstellt haben. Diese Klasse lassen wir von javafx.application.Application erben und überschreiben die Methode

public void start(Stage stage) throws Exception

In Ihr schreiben wir folgenden Code:

URL url = HalloJavaFX.class.getResource("/fxml/Main.fxml");

if(url != null) {
Parent root = FXMLLoader.load(url);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.setTitle("Hallo JavaFX");
stage.show();

Hier geben wir die Main.fxml als unser Root-Objekt an, definieren diese als Scene und fügen Diese unserer Stage hinzu. Nun vergeben wir noch einen Titel und öffnen diese.

In der Klasse fügen wir nun noch eine 2. Methode hinzu:

public static void main(String[] args) {
Application.launch(args);

Nun fügen wir noch eine neue Klasse ein, über die wir unsere Form als Application öffnen.

package de.domjos.HalloJavaFX;

public class Launcher {

public static void main(String[] args) {
HalloJavaFX.main(args);
}
}

 Nun haben wir alle Klassen erstelle die wir brauchen und wir können zum ersten Mal unsere Applikation laufen lassen. Dazu machen wir in der Entwicklungsumgebung eine neue Konfiguration mit dem Typ Applikation. Als Main-Klasse hinterlegen wir dort die Launcher.java.



 






Um nun die Applikation zu öffnen, drücken wir auf dem Play-Button, neben der ausgewählten Konfiguration. Nach einiger Zeit sollte sich nun folgendes Fenster öffnen:










Keine Sorge, so leer wird die Oberfläche nicht bleiben. In den folgenden Teilen, werden wir die Oberfläche mit Leben füllen.

Falls irgendetwas nicht so geklappt haben sollte, wie Sie es gerne hätten, können Sie gerne im Github-Repository nachschauen oder über einen Kommentar fragen.


Fortsetzung folgt...

Kommentare