加载 FXML 时发生 javafx.fxml.LoadException

标签 java intellij-idea fxml fxmlloader

我正在尝试创建一个非常简单的带有黑色背景的VBox。就这样。没有其他的。我使用 FXML 来描述我的 VBox

样本.fxml:

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>

<VBox xmlns:fx="http://javafx.com/fxml" fx:controller="sample.Controller" alignment="CENTER" background="#000000ff">
</VBox>   

Controller .java:

package sample;

public class Controller {  
    // No code written. Not required.
}  

Main.java:

package sample;

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


/* Code auto generated by IDEA IDE. */
public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        primaryStage.setTitle("Adi's login app");
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();
    } 


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

我正在使用 IDEA IntelliJ IDE。我收到以下错误:

Exception in Application start method
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
	at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$152(LauncherImpl.java:182)
	at com.sun.javafx.application.LauncherImpl$$Lambda$2/51228289.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:745)
Caused by: javafx.fxml.LoadException: 
/Users/aditya/Desktop/workspace/Java/LoginApp/out/production/LoginApp/sample/sample.fxml:5

	at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2605)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2583)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2445)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3218)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3179)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3152)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3128)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3108)
	at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3101)
	at sample.Main.start(Main.java:13)
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$159(LauncherImpl.java:863)
	at com.sun.javafx.application.LauncherImpl$$Lambda$53/87719178.run(Unknown Source)
	at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$172(PlatformImpl.java:326)
	at com.sun.javafx.application.PlatformImpl$$Lambda$49/2001689116.run(Unknown Source)
	at com.sun.javafx.application.PlatformImpl.lambda$null$170(PlatformImpl.java:295)
	at com.sun.javafx.application.PlatformImpl$$Lambda$51/779320874.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$171(PlatformImpl.java:294)
	at com.sun.javafx.application.PlatformImpl$$Lambda$50/1474675095.run(Unknown Source)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Caused by: java.lang.IllegalArgumentException: Unable to coerce #000000ff to class javafx.scene.layout.Background.
	at com.sun.javafx.fxml.BeanAdapter.coerce(BeanAdapter.java:495)
	at com.sun.javafx.fxml.BeanAdapter.put(BeanAdapter.java:258)
	at com.sun.javafx.fxml.BeanAdapter.put(BeanAdapter.java:54)
	at javafx.fxml.FXMLLoader$Element.applyProperty(FXMLLoader.java:508)
	at javafx.fxml.FXMLLoader$Element.processValue(FXMLLoader.java:359)
	at javafx.fxml.FXMLLoader$Element.processPropertyAttribute(FXMLLoader.java:321)
	at javafx.fxml.FXMLLoader$Element.processInstancePropertyAttributes(FXMLLoader.java:231)
	at javafx.fxml.FXMLLoader$ValueElement.processEndElement(FXMLLoader.java:763)
	at javafx.fxml.FXMLLoader.processEndElement(FXMLLoader.java:2827)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2536)
	... 18 more

为什么会发生这种情况?如果我犯了任何错误或遗漏了任何内容,请告诉我。

最佳答案

与Intellij无关,我也遇到过这个问题。 我用 Java 1.8 编译,我改为 1.7 并且可以工作。

关于加载 FXML 时发生 javafx.fxml.LoadException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30959526/

相关文章:

java - Intellij断点报告方法抛出 'java.lang.ClassNotFoundException'异常即使变量存在

java - 为什么 .fxml 文件无法在场景生成器中打开?

javafx - 如何在JavaFX/FXML中对齐中心标签?

JavaFX FXML Controller 类访问主类中的函数?

intellij-idea - <ComponentName> 标签上的 IntelliJ CMD/CTRL + LMB 在 VueJS 项目中不起作用

java - 想法intellij : JSP file color and font settings

java - 如果多个类包含相同的错误检查代码,我应该将其提取到新类中吗?

java - 如何解决更新子元素时的ConcurrentModificationException?

java - 如何在java web应用程序中的pdf报告中绘制图表

java - 我做了一个 for 循环来交换字符串中的两个 indiv char 变量