1
内部クラスを内部クラスから起動しようとしていますが、動作しません。JavaFXは内部アプリケーションクラスを起動します
私はすでに静的修飾子をWindowから削除し、Mainのインスタンスから起動しようとしました。
コード:
import javafx.application.Application;
import javafx.stage.Stage;
public class Main {
private static class Window extends Application {
@Override
public void start(Stage stage) {
stage.show();
}
}
public static void main(String args[]) {
Application.launch(Window.class, args);
}
}
例外:
Exception in Application constructor
Exception in thread "main" java.lang.RuntimeException: Unable to construct Application instance: class VirtualLaunchpad$Window
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: VirtualLaunchpad$Window.<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.gtk.GtkApplication._runLoop(Native Method)
at com.sun.glass.ui.gtk.GtkApplication.lambda$null$5(GtkApplication.java:139)
... 1 more
あなたはそうです! :D私はそれを試したことが絶対に確かでした!ありがとう。何らかの理由でApplication.launchメソッドからWindowインスタンスを取得できるかどうか、またはWindowインスタンスが起動されたばかりのMainクラスに伝える必要があるかどうかを知っていますか? – Kangalioo
@Kangalioo 'start()'(または 'init()')メソッドで 'this'を参照する以外に、' launch() 'によって作成された' Application'クラスのインスタンスを取得することはできません。 –
私の場合、クラスとコンストラクタはpublicでしたが、私は "静的"キーワークが欠けていました。したがって、開始していませんでした。 – Line