问题描述
我是Java新手,想知道为什么我的if(){} else {}语句无法正常工作。谁能解释为什么? 为了获得更多背景信息,我尝试制作一种自动单击器类型的东西,该东西还可以将鼠标移动到不同的位置以解决基本难题。
这是我到目前为止所拥有的
import java.awt*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.Color;
class main {
public static void main (String[] args) throws Exception {
Robot robot = new Robot();
robot.mouseMove(1681,679);
robot.mousepress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(10);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(1000);
for (int i = 2; i >= 1; i++) {
robot.delay(3000);
var color = robot.getPixelColor(1802,762);
if (color == Color.white) {
robot.mouseMove(1700,679);
robot.mousepress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(10);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(5000);
robot.mouseMove(1700,679);
robot.mousepress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(100);//click delay
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseMove(1569,973);
robot.mousepress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(100);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(200);
robot.mouseMove(1142,729);
robot.delay(1500);
robot.mousepress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(100);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(3000);
robot.mouseWheel(10);
robot.mouseMove(391,822);
robot.delay(500);
robot.mousepress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(100);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
} else {
robot.mouseMove(1681,679);
robot.mousepress(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(10);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_R);
robot.keyrelease(KeyEvent.VK_CONTROL);
robot.keyrelease(KeyEvent.VK_R);
robot.delay(10000);
}
}
}
}
解决方法
var color = robot.getPixelColor(1802,762);
您应该在此处放置颜色而不是var
Color color = robot.getPixelColor(1802,762);
,
var类型在javascript中被大量使用,因为它是一种动态类型化的语言。 Java是一种静态类型的语言,因此在大多数情况下使用Java并非总是一个好主意,因为它会降低可读性。 var类型仅在Java 10中引入。您只能在少数情况下使用var类型。
它将与
一起使用var a =“一个字符串” var b = 2
但是它可能不适用于
var c = new object()
原因是Java编译器首先不知道右侧的值的类型是什么。因为它是一种类型安全的语言,所以它可以在Javascript上运行,但不能在Java上运行。
因此将var更改为正确的类型(如Color)将是明智的。另外,我注意到您的for循环功能将永远存在。那是你的意图吗?如果没有,建议您仔细检查一下循环计数器或条件语句。