Отправка выходов клавиатуры - PullRequest
1 голос
/ 28 марта 2020

Я хотел создать API-интерфейс для вывода на клавиатуру, чтобы я мог создать программу машинного обучения для Tetris, и я попытался:

import java.awt.*;

public class Keyboard
{
    public static void main( String[] args )
    {
        Robot keyboard = new Robot();
        keyboard.keyPress(KeyEvent.VK_A);

    }

}

, но с ошибкой для new Robot() он говорит Msgstr "Необработанное исключение: java .awt.AWTException". и после этого в строке появляется ошибка: «Не удается разрешить символ« KeyEvent »», хотя у меня import java.awt.*;. что я делаю не так?

1 Ответ

2 голосов
/ 28 марта 2020

давайте проверим, какие ошибки мы получаем.

Unhandled exception: java.awt.AWTException

Это означает, что вы не обрабатываете исключение, вызванное вызывающим конструктором new Robot();, вам нужно проверить это в документации здесь : https://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html или используйте вашу IDE, она может показать, какое исключение может быть выдано. Чтобы это исправить, нам нужно окружить вызов конструктора new Robot (); блоком try-catch или объявить исключение в методе main (); подробнее об исключениях здесь: https://docs.oracle.com/javase/tutorial/essential/exceptions/

Cannot resolve symbol 'KeyEvent'

Это может означать, что вы пропустили некоторые операции импорта, если вы импортировали импорт java.awt.*; но этот импорт не включает java.awt.event

//Don't use static (*) import just import what you need in this case
//or use your IDE auto import

import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.awt.AWTException;

 public class MainClass {

   public static void main(String[] args) {

    try {
        Robot rob = new Robot();
        // Robot can throw an AWTException
        // we need surround him with try-catch block
        // Or declare exception throw in current method

        // Pressing button
        rob.keyPress(KeyEvent.VK_A);

        // Releasing button in case if we don't do that key may stay in press state
        rob.keyRelease(KeyEvent.VK_A);
    } catch (AWTException e) {
        // Process exception if something go wrong
        e.printStackTrace();
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...