Почему JavaFX вызывает исключение IllegalStateException при создании объекта Robot?JAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Почему JavaFX вызывает исключение IllegalStateException при создании объекта Robot?

Сообщение Гость »


Я создаю приложение и мне нужна функция, в которой, когда пользователь нажимает E, указатель мыши будет устанавливаться в центр экрана (с помощью moveMouse()< /код> метод). Однако это просто выдает IllegalStateException.

Вместо этого я попробовал использовать GlassRobot (из этого вопроса с принятым ответом), но вместо этого я получил только IllegalAccessException. Что я делаю не так? Нужно ли мне что-то включать?
Код и ошибка IllegalStateException
Примечание. Внизу есть комментарий
Исключение в потоке "main" java.lang.reflect.InvocatingTargetException в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) в java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) в java.base/java.lang.reflect.Method.invoke(Method.java:568) по адресу java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1082) Вызвано: java.lang.ExceptionInInitializerError в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) в java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) в java.base/java.lang.reflect.Method.invoke(Method.java:568) по адресу javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs (LauncherImpl.java:465) по адресу javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication (LauncherImpl.java:364) ... еще 5 Вызвано: java.lang.IllegalStateException: эта операция разрешена только в потоке событий; currentThread = основной в javafx.graphics/com.sun.glass.ui.Application.checkEventThread(Application.java:447) по адресу javafx.graphics/javafx.scene.robot.Robot.(Robot.java:70) at com.galactify.tiles/com.galactify.tiles.HelloApplication.(HelloApplication.java:37) // Здесь создается объект Robot ... еще 11 Декларация робота сцены private static Final Robot robot = new Robot() ; Декларация GlassRobot private static Final Robot = Robot robot = com.sun.glass.ui.Application.GetApplication().createRobot() ; Методы, используемые для установки указателя мыши в центр, когда пользователь нажимает E static void onKeyReleased(KeyEvent evt) { Ключ KeyCode = evt.getCode() ; out.println(клавиша + "отпущена"); переключатель (ключ) { случай F11 -> { stage.setFullScreen(!isFullscreen) ; isFullscreen = !isFullscreen; } случай C -> { стадия.закрыть() ; isClosed = Истина; } случай E -> setupInventory() ; } } static void setupInventory() { robot.mouseMove((double) screenWidth / 2, (double) screenHeight / 2) ; }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»