#java #robot
#java #робот
Вопрос:
package com.company.Iguana;
import java.awt.*;
import java.awt.AWTException;
import java.awt.Color;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.IOException;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.Timer;
import java.awt.event.KeyEvent;
public class Main {
public static boolean Clicking = true;
public static Robot robot;
public static void main(String[] args) throws AWTException {
Robot robot = new Robot();
new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyChar() == 'x')
Clicking = true;
if(e.getKeyChar() == 'v')
Clicking = false;
if(Clicking == true)
while(true){
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(1000);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
}
}
@Override
public void keyReleased(KeyEvent e) {
}
};
}
}
Я пытаюсь сделать так, чтобы всякий раз, когда я нажимаю x, запускался автокликер и останавливал его, когда я нажимаю v, но как только я запускаю код, он просто говорит public static void main(String[] args), но когда я добавляю static, он говорит 23: 9
java: нестатическая переменная, на которую нельзя ссылаться из статического контекста
Строка 23:9 — это this.addKeyListener( новый KeyListener() {
…………………………………………………………………………………………………………………………………………………………………………………………
Комментарии:
1. Вы действительно хотите, чтобы большая часть вашего кода находилась в
catch
блоке исключений? В любом случае вы должны исправить отступы и другое форматирование. — кроме того, вы имеете в виду, что весь этот код должен находиться вstatic
блоке внутри определения класса?2. Является ли причиной проблемы код, находящийся внутри блока перехвата исключений?
3. Я бы подумал, что это возможно. Он не будет запущен, если
new Robot()
не генерирует исключение. — это специально? Вы хотите, чтобы этот код выполнялся только в том случае, еслиnew Robot()1
генерируется исключение?4. Я думал, что блок перехвата исключений также будет работать, поэтому я предполагаю, что ima должен вместо этого генерировать исключение, верно?
5. С уважением, я не думаю, что вы знаете, что делаете. Обычно код в блоке исключений предназначен для обработки условия ошибки. Если вы хотите, чтобы ваш код выполнялся в нормальных условиях, то вы не хотите, чтобы он выполнялся в . блок исключений. Вероятно, вы хотите, чтобы это было в статическом методе. Прямо сейчас ваш код — это весь код инициализации класса, который обычно не видно, хотя он может работать.