В настоящее время я пытаюсь сделать держатель клавиши Shift с Java, используя серьезный акцент в качестве переключателя, и робот был единственным способом, который я мог найти, который был дистанционно простым. программа делает то, что подразумевает название, и удерживает клавишу Shift для меня. создание программы для звездного строительства, если вам интересно, где это будет полезно, так как есть capslock. однако при использовании робота я должен выбросить несколько исключений, но затем они появляются в том месте, где я называю свою пустоту
Я не могу найти никакого решения для этого, возможно, потому что я использую библиотеку JNativeHook, чтобы создать кейлоггер, который будет реагировать на серьезный символ. я все еще довольно новичок, и я собрал много всего этого из фрагментов онлайн.
отсюда моя ошибка, полная программа доступна здесь
я бы опубликовал минимальный воспроизводимый пример, но я не могу, поскольку я не знаю, какие части имеют решающее значение для функционирования этой одной части.
//tried to put throws in nativeKeyPressed to get rid of the exceptions but then that gives me an exception saying i can't do that because it causes clashing
public void nativeKeyPressed(NativeKeyEvent e){
System.out.println("Key Pressed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
if (e.getKeyCode() == NativeKeyEvent.VC_BACKQUOTE) {
toggle(); //get IOException, AWTException, and InterruptedException whenever i put throws on my toggle() void
}
}
//throw exceptions so robot has no conflicts
public static void toggle() throws IOException, AWTException, InterruptedException{
bool = !bool;
Robot r = new Robot();
if (bool = true) {
} else if (bool = false) {
}
Я ожидаю, что в нем не будет ошибок, но Robot()
имеет исключения, если я их не выбрасываю, а toggle();
имеет все исключения, которые я выбрасываю из public static void toggle()
. Я открыт для других методов, кроме роботов, но не могу найти других.