如何解决javafx.fxml.LoadException & 未找到无效的 URL 或资源:我无法使用 FXMLLoader.load();
我正在尝试加载一个文件 .fxml (MainWindowInterface.fxml),它是计算器的设计部分。因为我希望计算器作为一个新阶段(当我单击一个按钮时)弹出,而旧阶段也存在,所以我创建了另一个阶段和场景。当它尝试加载该文件时,它会给我“javafx.fxml.LoadException”和“无效的 URL 或资源未找到”错误。我输入了 url,但它永远不会停止给我这些错误。
这是我的新窗口代码:
@FXML
public void toCalc(ActionEvent actionEvent) {
try {
Parent root = FXMLLoader.load(getClass().getResource("MainWindowInterface.fxml"));
Stage primaryStage = new Stage();
Scene scene = new Scene(root);
primaryStage.setTitle("Calculator");
primaryStage.setScene(scene);
primaryStage.show();
}
catch(Exception e) {
e.printstacktrace();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<?import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.text.Font?>
<AnchorPane prefheight="610.0" prefWidth="460.0" stylesheets="@MainWindowStyle.css" xmlns="http://javafx.com/javafx/16" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.MainWindowController">
<children>
<Pane layoutX="6.0" layoutY="37.0" prefheight="567.0" prefWidth="449.0" styleClass="mainPane">
<children>
<Pane layoutX="14.0" layoutY="14.0" prefheight="116.0" prefWidth="422.0" styleClass="highlight">
<children>
<Label fx:id="lblResult" alignment="CENTER_RIGHT" layoutX="20.0" layoutY="40.0" prefheight="42.0" prefWidth="383.0" text="0.0" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btn7" layoutX="14.0" layoutY="137.0" onMouseClicked="#onNumberClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="40.0" layoutY="29.0" text="7" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btn8" layoutX="121.0" layoutY="137.0" onMouseClicked="#onNumberClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="40.0" layoutY="29.0" text="8" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btn9" layoutX="228.0" layoutY="137.0" onMouseClicked="#onNumberClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="40.0" layoutY="29.0" text="9" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btnPlus" layoutX="336.0" layoutY="137.0" onMouseClicked="#onSymbolClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="39.0" layoutY="29.0" text="+" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btn4" layoutX="15.0" layoutY="243.0" onMouseClicked="#onNumberClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="40.0" layoutY="29.0" text="4" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btn5" layoutX="122.0" layoutY="243.0" onMouseClicked="#onNumberClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="40.0" layoutY="29.0" text="5" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btn6" layoutX="229.0" layoutY="243.0" onMouseClicked="#onNumberClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="40.0" layoutY="29.0" text="6" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btnMinus" layoutX="337.0" layoutY="243.0" onMouseClicked="#onSymbolClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="44.0" layoutY="29.0" text="-" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btn1" layoutX="14.0" layoutY="349.0" onMouseClicked="#onNumberClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="40.0" layoutY="29.0" text="1" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btn2" layoutX="121.0" layoutY="349.0" onMouseClicked="#onNumberClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="40.0" layoutY="29.0" text="2" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btn3" layoutX="228.0" layoutY="349.0" onMouseClicked="#onNumberClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="40.0" layoutY="29.0" text="3" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btnMultiply" layoutX="336.0" layoutY="349.0" onMouseClicked="#onSymbolClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="43.0" layoutY="37.0" text="*" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btnClear" layoutX="15.0" layoutY="455.0" onMouseClicked="#onSymbolClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="37.0" layoutY="29.0" text="C" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btn0" layoutX="122.0" layoutY="455.0" onMouseClicked="#onNumberClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="40.0" layoutY="29.0" text="0" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btnEquals" layoutX="229.0" layoutY="455.0" onMouseClicked="#onSymbolClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="39.0" layoutY="29.0" text="=" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
<Pane fx:id="btnDivide" layoutX="337.0" layoutY="455.0" onMouseClicked="#onSymbolClicked" prefheight="100.0" prefWidth="100.0" styleClass="highlight">
<children>
<Label layoutX="45.0" layoutY="29.0" text="/" textFill="WHITE">
<font>
<Font name="Arial" size="36.0" />
</font>
</Label>
</children>
</Pane>
</children>
</Pane>
<Pane fx:id="titlePane" prefheight="37.0" prefWidth="460.0">
<children>
<Button layoutX="398.0" layoutY="8.0" mnemonicParsing="false" style="-fx-background-color: transparent;">
<graphic>
<FontAwesomeIconView fill="WHITE" glyphName="MINUS" />
</graphic>
</Button>
<Button fx:id="btnClose" layoutX="420.0" layoutY="8.0" mnemonicParsing="false" onAction="#exit" style="-fx-background-color: transparent;">
<graphic>
<FontAwesomeIconView fill="WHITE" glyphName="CLOSE" />
</graphic>
</Button>
<Label layoutX="49.0" layoutY="11.0" text="Calcolatrice" textFill="WHITE" />
<Button layoutX="14.0" layoutY="8.0" mnemonicParsing="false" style="-fx-background-color: transparent;">
<graphic>
<FontAwesomeIconView fill="WHITE" glyphName="CIRCLE" />
</graphic>
</Button>
</children>
</Pane>
</children>
</AnchorPane>
这是错误:
javafx.fxml.LoadException:
/C:/Users/patri/IdeaProjects/AutofficinaBorgato/out/production/AutofficinaBorgato/sample/MainWindowInterface.fxml:176
at javafx.fxml/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2625)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2603)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3237)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3194)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3163)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3136)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3113)
at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3106)
at sample.MenuController.toCalc(MenuController.java:89)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(UnkNown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1782)
at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1670)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventdispatcher.dispatchBubblingEvent(CompositeEventdispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventdispatcher.dispatchEvent(BasicEventdispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventdispatchChainImpl.dispatchEvent(EventdispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventdispatcher.dispatchEvent(BasicEventdispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventdispatchChainImpl.dispatchEvent(EventdispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventdispatcher.dispatchEvent(BasicEventdispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventdispatchChainImpl.dispatchEvent(EventdispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventdispatcher.dispatchEvent(BasicEventdispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventdispatchChainImpl.dispatchEvent(EventdispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8879)
at javafx.controls/javafx.scene.control.Button.fire(Button.java:200)
at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:206)
at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$normalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventdispatcher.dispatchBubblingEvent(CompositeEventdispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventdispatcher.dispatchEvent(BasicEventdispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventdispatchChainImpl.dispatchEvent(EventdispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventdispatcher.dispatchEvent(BasicEventdispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventdispatchChainImpl.dispatchEvent(EventdispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventdispatcher.dispatchEvent(BasicEventdispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventdispatchChainImpl.dispatchEvent(EventdispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventdispatcher.dispatchEvent(BasicEventdispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventdispatchChainImpl.dispatchEvent(EventdispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3851)
at javafx.graphics/javafx.scene.Scene$MouseHandler.access$1200(Scene.java:3579)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1849)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2588)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:397)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:434)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:390)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:433)
at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.IllegalArgumentException: Can not set javafx.scene.image.ImageView field sample.MainWindowController.btnClose to javafx.scene.control.Button
at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
at java.base/jdk.internal.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81)
at java.base/java.lang.reflect.Field.set(Field.java:793)
at javafx.fxml/javafx.fxml.FXMLLoader.injectFields(FXMLLoader.java:1174)
at javafx.fxml/javafx.fxml.FXMLLoader.access$1600(FXMLLoader.java:105)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processValue(FXMLLoader.java:865)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processstartElement(FXMLLoader.java:759)
at javafx.fxml/javafx.fxml.FXMLLoader.processstartElement(FXMLLoader.java:2722)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2552)
... 70 more
Process finished with exit code 0
如果你想知道路径: projectPath
我已经尝试了所有方法,例如将文件放入目录并更改路径或使用绝对/相对路径,但对我来说没有任何效果。我读到这可能是由一些未导入的库引起的,但正如您所看到的,我已经导入了所有库。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。