0
javaFXを使用してアプリケーションを作成しようとしています。このクラスはアプリケーションを拡張します。 エラーメッセージは、私のサブクラスコンストラクタに何か問題があると考えていますが、関連するすべてのパラメータ(none)を持つsuper(Application)を呼び出します。サブクラスのJavaFXアプリケーションコンストラクタ
public class SameGame extends Application {
private Button[][] board;
public Button[][] getBoard() {
return board;
}
public SameGame(int BoardSize){
super();
board = new Button[BoardSize][BoardSize]; //only make squares
for (int x = 0; x < getBoard().length; x++) {
for (int y = 0; y < getBoard()[x].length; y++) {
board[x][y] = new Button();
}
}
}
public void start(Stage primaryStage) {
GridPane gridpane = new GridPane();
Scene scene = new Scene(gridpane);
primaryStage.setScene(scene);
primaryStage.show();
SameGame sameGame = new SameGame(5);
for (int x = 0; x < getBoard().length; x++) {
for (int y = 0; y < getBoard()[x].length; y++) {
gridpane.add(getBoard()[x][y], x, y);
}
}
}
public static void main(String[] args) {
Application.launch(args);
}
}
と相続人の例外
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 SameGame
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:907)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$154(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodException: SameGame.<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$160(LauncherImpl.java:818)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$174(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(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$147(WinApplication.java:177)
... 1 more
Exception running application SameGame
Process finished with exit code 1
私は答えのそこでのを知って、私はちょうど
を実行したときBoardSizeの入力に、cmd引数から来る必要がありますか? –
mmmおそらくコマンドラインのargsから来るはずです。 –
'launch()'メソッドは、引数なしのコンストラクタを(リフレクションを介して)呼び出して、 'Application'クラスのインスタンスを作成します。引数のないコンストラクタがないので、エラーが発生します。 @DawoodibnKareemが指摘しているように、あなたの現在のコードはあまり意味をなさない... –