Как разрешить незарегистрированное исключение AWTException ; должен быть пойман или объявлен брошенным. Экземпляр робота

У меня есть ошибка «несообщаемое исключение AWTException; должно быть поймано или объявлено для выбрасывания», создающее экземпляр класса, который содержит методы с движениями мыши и клавиш с использованием Robot. Я попытался с помощью try catch In экземпляра, но «щелчок» не работает таким образом, в чем проблема, как ее решить?

package Ventanas;

    enter code here

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

public class Sel {

    Robot robot = new Robot();

    public void apos() throws AWTException {

        //mouseMv(1408, 1001);  
        //leftClick(); 
        mouseMv(1383, 216);
        leftClick();
        //mouseMv(1408, 1001);
        //leftClick(); 
    }

    public Sel() throws AWTException {

        robot.setAutoDelay(40);
        robot.setAutoWaitForIdle(true);
    }

    public void leftClick() throws AWTException {

        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.delay(200);
        robot.mouseRelease(InputEvent.BUTTON1_MASK);
        robot.delay(200);
    }

    public void mouseMv(int x, int y) throws AWTException {

        robot.mouseMove(x, y);
    }

    public void abrirFavoritos() throws AWTException {
        //1408 999
        try {
            mouseMv(1408, 999);
            leftClick();
        } catch (NullPointerException e) {
            System.out.println(e);
        }

    }

}

-----------------------------------------------------------------------

//Another class
    private void IniciarActionPerformed(java.awt.event.ActionEvent evt) {                                        

            Metodos a = new Metodos();

            Sel s = new Sel(); //Here is the error
    }

person Marcos Guala    schedule 08.01.2019    source источник


Ответы (1)


Поставив лайк try-catch

try {
    Sel s = new Sel();
    // ...
} catch (AWTException ae) {
    ae.printStackTrace();
}

Или изменить сигнатуру этого метода, чтобы также вызвать исключение. То есть изменить

private void IniciarActionPerformed(java.awt.event.ActionEvent evt)

to

private void IniciarActionPerformed(java.awt.event.ActionEvent evt) throws AWTException
person Elliott Frisch    schedule 08.01.2019
comment
Я не могу изменить метод для выдачи исключения, я пытался использовать try-catch (как и вы), но теперь у меня есть ошибка Исключение в потоке AWT-EventQueue-0 java.lang.IllegalThreadStateException: не удается вызвать метод из потока диспетчера событий - person Marcos Guala; 08.01.2019