当我使用java 18在eclipse中运行以下代码时,会得到一个错误。请帮帮忙。fxml是使用场景生成器生成的。我读错了,但我不明白解决办法。在Main.fxml中,他认为在第9行之前一切都很好。
我用这段视频作为参考。https://youtu.be/N3LZM4WFHBY?list=PLZPZq0r_RZOM-8vJA3NQFZB7JroDcMwev
Main.java:
package application;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
Parent root = FXMLLoader.load(getClass().getResource("Main.fxml"));
Scene scene = new Scene(root);
primaryStage.setResizable(false);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Controller.java:
package application;
import java.awt.event.ActionEvent;
public class Controller {
public void up(ActionEvent e) {
System.out.println("UP");
}
public void down(ActionEvent e) {
System.out.println("DOWN");
}
public void right(ActionEvent e) {
System.out.println("RIGHT");
}
public void left(ActionEvent e) {
System.out.println("LEFT");
}
}
Main.fxml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller">
<children>
<Button layoutX="286.0" layoutY="14.0" mnemonicParsing="false" onAction="#up" text="UP" />
<Button layoutX="536.0" layoutY="188.0" mnemonicParsing="false" onAction="#right" text="RIGHT" />
<Button layoutX="273.0" layoutY="361.0" mnemonicParsing="false" onAction="#down" text="DOWN" />
<Button layoutX="14.0" layoutY="188.0" mnemonicParsing="false" onAction="#left" text="LEFT" />
</children>
</AnchorPane>
错误:
javafx.fxml.LoadException:
/C:/Users/suyak/eclipse-workspace/Message/bin/application/Main.fxml:9
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2707)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:933)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:981)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:230)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:755)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2808)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2634)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3331)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3287)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3255)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3227)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3203)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3196)
at FirstJavaFX/application.Main.start(Main.java:14)
at javafx.graphics@18.0.2/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
at javafx.graphics@18.0.2/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
at javafx.graphics@18.0.2/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at javafx.graphics@18.0.2/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
at javafx.graphics@18.0.2/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics@18.0.2/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics@18.0.2/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.ClassNotFoundException: Controller
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at javafx.fxml@18.0.2/javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:931)
... 22 more
https://stackoverflow.com/questions/73231897
复制相似问题