I'm trying a JavaFX tutorial from the Oracle site [fxml tutorial] (http://docs.oracle.com/javase/8/javafx/get-started-tutorial/fxml_tutorial.htm).
package fxml;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
class Main extends Application {
public Main() {}
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("welcome.fxml"));
Scene scene = new Scene(root);
stage.setTitle("FXML UI");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
And this is the exception that I'm continuously getting. The application doesn't show up on the screen. I did the non-args Main() constructor from another stack overflow answer but it didn't fix it.
Exception in Application constructor
Exception in thread "main" java.lang.RuntimeException: Unable to construct Application instance: class fxml.Main
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:884)
at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:56)
at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:158)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalAccessException: Class com.sun.javafx.application.LauncherImpl$7 can not access a member of class fxml.Main with modifiers "public"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:101)
at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:295)
at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:287)
at java.lang.reflect.Constructor.newInstance(Constructor.java:398)
at com.sun.javafx.application.LauncherImpl$7.run(LauncherImpl.java:791)
at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335)
at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301)
at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
class Main extends Application
is missing the initial public
keyword.
Also public Main() {}
is unnecessary.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With