4
사용자로부터 정보를 얻기 위해 JavaFX 응용 프로그램 (SimpleSun)을 호출해야하는 주 클래스가 있습니다. 현재 JavaFX 클래스의 Object를 만들고 시작하지만 작동하지 않습니다. 누군가 내 작업에서 실수를 보는가? Main.java :자바에서 JavaFX 응용 프로그램을 호출하는 중 ... NoSuchMethodException
여기에 내 코드와 예외의
package ch.i4ds.stix.sim;
import ch.i4ds.stix.sim.grid.config.Configuration;
import ch.i4ds.stix.sim.grid.config.ConfigurationFromFile;
public class Main{
Configuration config;
public static void main(String[] args) {
ConfigurationFromFile config = new ConfigurationFromFile();
SimpleSun ss = new SimpleSun(config);
ss.show();
}
}
SimpleSun.java :
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import ch.i4ds.stix.sim.grid.config.Configuration;
import ch.i4ds.stix.sim.grid.config.ConfigurationFromFile;
public class SimpleSun extends Application{
private Stage primaryStage;
Configuration configuration;
public SimpleSun(ConfigurationFromFile config) {
this.configuration = config;
}
@Override
public void start(Stage primaryStage) throws Exception {
this.primaryStage = primaryStage;
this.primaryStage.setTitle("Simple Sun - Alpha");
System.out.println("Test");
try {
// Load the root layout from the fxml file
FXMLLoader loader = new FXMLLoader(
Main.class.getResource("view/RootLayout.fxml"));
BorderPane rootLayout = (BorderPane) loader.load();
Scene scene = new Scene(rootLayout);
primaryStage.setScene(scene);
primaryStage.show();
} catch (IOException e) {
// Exception gets thrown if the fxml file could not be loaded
e.printStackTrace();
}
}
public void show(){
launch();
}
}
예외 : 당신은 인수가없는 생성자를 제공해야합니다
Exception in Application constructor
Exception in thread "main" java.lang.RuntimeException: Unable to construct Application instance: class ch.i4ds.stix.sim.SimpleSun
at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at com.sun.javafx.application.LauncherImpl.access$000(Unknown Source)
at com.sun.javafx.application.LauncherImpl$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoSuchMethodException: ch.i4ds.stix.sim.SimpleSun.<init>()
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.getConstructor(Unknown Source)
... 4 more
글쎄, 나는 그것을 기대하지 않았다. 응용 프로그램은 빈 생성자 없이는 작동하지 않는다. :-(나는 단지 빈 생성자를 추가해야만한다. 그리고 그것은 모두 잘 작동한다 ... 저주받은 작은 실수 ... – NexusTeddy
아니요, 실행 프로그램은 리플렉션을 사용하여'Constructor extends Application> c = appClass.getConstructor();'(즉 기본 생성자를 찾습니다) 인스턴스를 만듭니다. – assylias