JavaFX InvocationTargetException выдается при попытке создать кнопку - PullRequest
0 голосов
/ 20 марта 2019

У меня было странное поведение.Я пытаюсь написать простой графический интерфейс, чтобы помочь мне взаимодействовать с моим университетским проектом, поэтому я не использую fxml.До этого момента все работало нормально с JavaFX - я мог создавать сцены, холсты и т. Д. Но когда я пытаюсь создать кнопку, она выдает ошибку.Даже когда это единственное, что я пытаюсь сделать, то есть:

public class SnakePlayback extends Application {

public static void main(String[] args) {
    launch(args);
}

@Override
public void start(Stage primaryStage) {
    Button button = new Button("text");
}
}

Это ошибка, которую я получаю:

Исключение в методе запуска приложения java.lang.refle.InvocationTargetException в java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodaava.jj.jj62).reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) при java.base / java.lang.reflect.Method.invoke (Method.java:566) при javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464) в javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363) в java.base / jdk.internal.reflect.NativeMethodAccessorImp0..base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в java.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.base / java.lang.reflect.Method.invoke (Method.java:566) в java.base / sun.launcher.LauncherHelper $ FXHelper.main (LauncherHelper. LauncherHelper.1051) Причина: java.lang.RuntimeException: Исключительная ситуация в методе запуска приложения в javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900) в javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda $ launchApplication $ 2 (LauncherImpl.java:195) в java.base / java.lang.Thread.run (Thread.java:834) Причина: java.lang.IllegalAccessError: сбой проверки доступа суперкласса: класс com.sun.javafx.scene.control.ControlHelper (в неназванном модуле @ 0x84d43ff) не может получить доступ к классу com.sun.javafx.scene.layout.RegionHelper (в модуле javafx.graphics), поскольку модуль javafx.graphics не экспортирует com.sun.javafx.scene.layout для неназванного модуля @ 0x84d43ff в java.base / java.lang.ClassLoader.defineClass1 (собственный метод) в java.base / java.lang.ClassLoader.defineClass (классLoader.java:1016) в java.base / java.security.SecureClassLoader.defineClass (SecureClassLoader.java:174) в java.base / jdk.internal.loader.BuiltinClassLoader.defineClass (BuiltinClassLoader.java.base): 2)/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700) в java.base / jdk.internal.loader.BuiltinClassLoader.loadClassOrNull (BuiltinClassLoader.java.oj.java.uk: 6).loadClass (BuiltinClassLoader.java:581) в java.base / jdk.internal.loader.ClassLoaders $ AppClassLoader.loadClass (ClassLoaders.java:178) в java.base / java.lang.ClassLoader.loadClass (ClassLoader.java:5) в javafx.scene.control.Control. (Control.java:86) в GUI.SnakePlayback.start (SnakePlayback.java:30) в javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9 (LauncherImpl.java:846) на javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455) на javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda $ runLater $ 10 (PlatformImpl.java:428) в java.base / java.security.AccessController.doPrivileged (нативный метод) в javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda11un(PlatformImpl.java:427) на javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) на javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Родной метод)в javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) ... 1 больше Исключение при запуске приложения GUI. SnakePlayback

Из того, что я мог прочитать, это то, что, возможно, это ошибка, связанная с отражением. Это не первый раз, когда я вижу это при попытке создать кнопку! В прошлый раз все, что нужно, чтобы вызвать исключение, - это просто объявить кнопку, т.е.

Button button;

Однако на этот раз мне действительно нужно использовать кнопки.

...