Java robot.getPixelColor if else语句不起作用



我是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是一种静态类型的语言,因此在大多数情况下使用它并不总是一个好主意,因为它会降低可读性。var类型仅在Java 10中引入。您只能在少数情况下使用var类型。

它将与一起工作

var a=";字符串";var b=2

然而,它可能不适用于

var c=新对象((

原因是java编译器一开始不知道右边的值的类型是什么。它可以在Javascript上工作,但不能在Java中工作,因为它是一种类型安全的语言。

因此,将var更改为正确的类型(如Color(是明智的。此外,我注意到你的for循环功能将永远存在。这是你的意图吗?如果没有,我建议您可以仔细检查循环计数器或条件语句。

最新更新