我在运行javafxml文件时遇到编译错误,我不知道为什么,请帮帮我!我正在研究intellij的想法,并通过场景生成器工作。我知道问题不在于xml路径,因为我从同一项目中的一个工作视图复制了它,该视图是由我的assoisite视图类创建的:
package View;
import Controller.QuestionLogic;
import javafx.application.Application;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.RadioButton;
import javafx.scene.control.ToggleGroup;
import javafx.stage.Stage;
public class QuestionEditor extends Application {
Stage stage;
@FXML
private ChoiceBox<String> allQuestions;
@FXML
private ChoiceBox<String> difficultyLevels;
@FXML
private ToggleGroup buttonGroup;
@FXML
private RadioButton radio1;
@FXML
private RadioButton radio2;
@FXML
private RadioButton radio3;
@FXML
private RadioButton radio4;
public QuestionEditor(ChoiceBox<String> allQuestions, ChoiceBox<String> difficultyLevels, ToggleGroup buttonGroup) {
this.allQuestions = allQuestions;
this.difficultyLevels = difficultyLevels;
this.buttonGroup = buttonGroup;
}
@Override
public void start(Stage primaryStage) throws Exception {
this.stage = primaryStage;
Parent root = (Parent) FXMLLoader.load(this.getClass().getResource("QuestionEditor.fxml"));
primaryStage.setTitle("Hello World");
Scene scene = new Scene(root, 300.0D, 275.0D);
initialize();
primaryStage.setScene(scene);
primaryStage.show();
}
@FXML
public void initialize() {
allQuestions.getItems().removeAll(allQuestions.getItems());
allQuestions.getItems().addAll(QuestionLogic.getInstance().orderQuestionListEditor());
difficultyLevels.getItems().removeAll(difficultyLevels.getItems());
difficultyLevels.getItems().addAll("Easy","Medium","Hard");
}
public static void main(String[] args) {
launch(args);
}
}
fxml文件:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ChoiceBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.RadioButton?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.ToggleGroup?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.text.Font?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="453.0" prefWidth="778.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="View.QuestionEditor">
<top>
<HBox prefHeight="50.0" prefWidth="600.0" BorderPane.alignment="CENTER">
<children>
<Button mnemonicParsing="false" text="backButton" />
<Label alignment="CENTER" contentDisplay="CENTER" prefHeight="46.0" prefWidth="699.0" text="Question editor">
<font>
<Font name="Calibri" size="39.0" />
</font>
</Label>
</children></HBox>
</top>
<center>
<BorderPane prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<center>
<Pane prefHeight="344.0" prefWidth="578.0" BorderPane.alignment="CENTER">
<children>
<Label alignment="CENTER" contentDisplay="CENTER" prefHeight="38.0" prefWidth="109.0" text="Details:" textAlignment="CENTER" />
<Label alignment="CENTER" contentDisplay="CENTER" layoutX="97.0" layoutY="34.0" text="Difficulty:" textAlignment="CENTER" />
<ChoiceBox fx:id="difficultyLevels" layoutX="161.0" layoutY="30.0" prefHeight="21.0" prefWidth="204.0" />
<Label alignment="CENTER" contentDisplay="CENTER" layoutX="90.0" layoutY="81.0" prefHeight="18.0" prefWidth="65.0" text="Question" textAlignment="CENTER" />
<TextField layoutX="161.0" layoutY="61.0" prefHeight="58.0" prefWidth="399.0" />
<Label layoutX="97.0" layoutY="135.0" text="Answer 1:" />
<Label layoutX="97.0" layoutY="169.0" text="Answer 2:" />
<Label layoutX="97.0" layoutY="202.0" text="Answer 3:" />
<Label layoutX="97.0" layoutY="233.0" text="Answer 4:" />
<TextField alignment="CENTER" layoutX="161.0" layoutY="229.0" />
<TextField alignment="CENTER" layoutX="161.0" layoutY="198.0" />
<TextField alignment="CENTER" layoutX="161.0" layoutY="131.0" />
<TextField alignment="CENTER" layoutX="161.0" layoutY="165.0" />
<RadioButton contentDisplay="CENTER" layoutX="319.0" layoutY="135.0" mnemonicParsing="false" text="Right answer" textAlignment="CENTER">
<toggleGroup>
<ToggleGroup fx:id="buttonGroup" />
</toggleGroup>
</RadioButton>
<Button alignment="CENTER" contentDisplay="CENTER" layoutX="102.0" layoutY="285.0" mnemonicParsing="false" text="Save" />
<Button alignment="CENTER" contentDisplay="CENTER" layoutX="200.0" layoutY="285.0" mnemonicParsing="false" text="Delete" />
<Button alignment="CENTER" contentDisplay="CENTER" layoutX="155.0" layoutY="285.0" mnemonicParsing="false" text="Edit" />
<RadioButton contentDisplay="CENTER" layoutX="319.0" layoutY="168.0" mnemonicParsing="false" text="Right answer" textAlignment="CENTER" toggleGroup="$buttonGroup" />
<RadioButton contentDisplay="CENTER" layoutX="319.0" layoutY="202.0" mnemonicParsing="false" text="Right answer" textAlignment="CENTER">
<toggleGroup>
<ToggleGroup fx:id="buttonGroup1" />
</toggleGroup>
</RadioButton>
<RadioButton contentDisplay="CENTER" layoutX="319.0" layoutY="233.0" mnemonicParsing="false" text="Right answer" textAlignment="CENTER">
<toggleGroup>
<ToggleGroup fx:id="buttonGroup11" />
</toggleGroup>
</RadioButton>
<Button layoutX="55.0" layoutY="364.0" mnemonicParsing="false" text="Back" />
<Button layoutX="129.0" layoutY="364.0" mnemonicParsing="false" text="Next" />
<Button layoutX="209.0" layoutY="364.0" mnemonicParsing="false" text="New" />
</children>
</Pane>
</center>
<left>
<Pane prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<children>
<Label alignment="CENTER" layoutX="-8.0" layoutY="-16.0" prefHeight="74.0" prefWidth="193.0" text="Question list" textAlignment="CENTER" />
<ChoiceBox fx:id="allQuestions" layoutX="14.0" layoutY="37.0" prefHeight="310.0" prefWidth="150.0" />
</children>
</Pane>
</left>
</BorderPane>
</center>
</BorderPane>
完全错误:
"C:\Program Files\Java\jdk1.8.0_221\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Educational Edition 2020.2.4\lib\idea_rt.jar=50487:C:\Program Files\JetBrains\IntelliJ IDEA Educational Edition 2020.2.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_221\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\rt.jar;C:\Users\dor h\IdeaProjects\Hamka_Team_Jellyfish\out\production\Hamka_Team_Jellyfish;C:\Users\dor h\IdeaProjects\Hamka_Team_Jellyfish\lib\java-json.jar;C:\Users\dor h\IdeaProjects\Hamka_Team_Jellyfish\java-json.jar;C:\Program Files\Java\javafx-sdk-11.0.2\lib\src.zip;C:\Program Files\Java\javafx-sdk-11.0.2\lib\javafx-swt.jar;C:\Program Files\Java\javafx-sdk-11.0.2\lib\javafx.web.jar;C:\Program Files\Java\javafx-sdk-11.0.2\lib\javafx.base.jar;C:\Program Files\Java\javafx-sdk-11.0.2\lib\javafx.fxml.jar;C:\Program Files\Java\javafx-sdk-11.0.2\lib\javafx.media.jar;C:\Program Files\Java\javafx-sdk-11.0.2\lib\javafx.swing.jar;C:\Program Files\Java\javafx-sdk-11.0.2\lib\javafx.controls.jar;C:\Program Files\Java\javafx-sdk-11.0.2\lib\javafx.graphics.jar" View.QuestionEditor
Exception in Application constructor
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Unable to construct Application instance: class View.QuestionEditor
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:907)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$1(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodException: View.QuestionEditor.<init>()
at java.lang.Class.getConstructor0(Class.java:3082)
at java.lang.Class.getConstructor(Class.java:1825)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$7(LauncherImpl.java:818)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$7(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$3(WinApplication.java:177)
... 1 more
Exception running application View.QuestionEditor
Process finished with exit code 1
我做错什么了?为什么我不能运行视图,即使我可以在场景生成器中构建它?
暂无答案!
目前还没有任何答案,快来回答吧!