Я только что примерно скопировал этот код, поместил его на свой IntelliJ, и он работал как чудо.Может быть, вы просто пропускаете /
в названии ресурса?
Вот точный код, который я использовал:
package hello;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
public class Hello extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Parent parent = FXMLLoader.load(Hello.class.getResource("/hello.fxml"));
Scene scene = new Scene(p, 400, 400);
primaryStage.setTitle("my app");
primaryStage.setScene(scene);
primaryStage.centerOnScreen();
primaryStage.show();
}
public static void main(String[] args) throws IOException {
launch(Hello.class);
}
}
Файл FXML:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Text?>
<AnchorPane xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:controller="hello.Hello"
prefHeight="400.0" prefWidth="600.0">
<VBox>
<Text>Hello</Text>
</VBox>
</AnchorPane>
Запуск с IntelliJ.Работает.Создайте Jar, запустите с java -jar ... также работает.