JavaFX Beispiel kann nicht ausgeführt werden

melaniemueller

Aktives Mitglied
Guten Abend zusammen,

mein nächstes Studienheft handelt sich um die Grundlagen von JavaFX. Nun wollte ich ein erstes Beispiel ausprobieren, aber ich kann es einfach nicht ausführen.
Ich hab nun schon eine Anfrage an meinen Fernlehrer geschickt, jedoch seit ihr hier meist doch sehr schnell und vor allem hilfreich 😊
Vielleicht kann mir also der ein oder andere helfen!

Ich habe eine Datei erstellt:
XML:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<FlowPane xmlns:fx="http://javafx.com/fxml">
    <Label>Hallo Welt</Label>
    <Label>Es grüßt Dich Max Meier</Label>
<Button>Schließen</Button>
</FlowPane>

Und eine Java Klasse:

Java:
package javaFXNeu;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class JavaFXBeispiel extends Application {
    @Override
    public void start(Stage meineStage) throws Exception {
//die Datei laden
//bitte in einer Zeile eingeben
        Parent root = FXMLLoader.load(getClass().getResource("fxml_beispiel.fxml"));
//die Szene erzeugen
//an den Konstruktor werden der oberste Knoten und
//die Größe übergeben
        Scene meineScene = new Scene(root, 400, 250);
//den Titel über stage setzen
        meineStage.setTitle("Hallo Welt mit FXML!");
//die Szene setzen
        meineStage.setScene(meineScene);
//und anzeigen
        meineStage.show();
    }

    public static void main(String[] args) {
//der Start
        launch(args);
    }
}

Das wollte ich dann ausführen, aber nichts passiert. Ich habe die jar Dateien eingefügt und die Argumente bei der Ausführen Konfiguration eingefügt.
Wo liegt der Fehler?

So sieht die Fehlermeldung aus:

Screenshot 2021-09-21 200455.png
 
Wo genau liegt die fxml Datei und wie heisst diese?

Du lädst die Resource und die muss sich im Classpath unter javaFXNeu/fxml_beispiel.fxml finden.

Beispiel: Bei einem Maven Projekt wäre die Datei in src/main/resources/javaFXNeu/fxml_beispiel.fxml
In einem Eclipse Projekt wäre es src/javaFXNeu/fxml_beispiel.fxml

Edit: Ursache ist also, dass getClass().getResource("fxml_beispiel.fxml") die Datei nicht finden kann und daher null zurück gibt.
 
Wo genau liegt die fxml Datei und wie heisst diese?

Du lädst die Resource und die muss sich im Classpath unter javaFXNeu/fxml_beispiel.fxml finden.

Beispiel: Bei einem Maven Projekt wäre die Datei in src/main/resources/javaFXNeu/fxml_beispiel.fxml
In einem Eclipse Projekt wäre es src/javaFXNeu/fxml_beispiel.fxml

Edit: Ursache ist also, dass getClass().getResource("fxml_beispiel.fxml") die Datei nicht finden kann und daher null zurück gibt.
Hier ein Bild davon.
Muss ich die Datei dann verschieben oder?

Screenshot 2021-09-21 202542.png
 
Das sieht nach eclipse aus. Ja, verschiebe die fxml Datei mal zu der Klasse in das Package.

Edit: Typo entfernt
 
Das sieht nach eclipse aus. Ja, verschiebe die fxml Datei mal zu der Klasse in das Package.

Edit: Typo entfernt
Ja genau Eclipse.

Hab es nun verschoben, so sieht es jetzt aus und jetzt klappt es auch!

Screenshot 2021-09-21 203746.png

Eigentlich dann schlecht gemacht in meinem Heft. Dort sollte man zuerst das Projekt erstellen, dann die Datei und danach die Klasse. Dann ist es ja klar dass die Datei im falschen Ordner landet 🤔
Ich danke dir für die schnelle Hilfe!
 

Zurück
Oben