我想创建一个对某些像素做出反应的程序,并在更改所选像素时增加计数器。 我正在使用Robot类。导致这个:
Boolean dontcount = false;
Robot robot = new Robot();
while (true) {
if(robot.getPixelColor(900, 900).equals(b)){
if(dontcount == false){
counter=counter++;
dontcount = true;
System.out.println(counter);
}
} else {
dontcount = false;
}
}
正在杀死我的电脑,我正在寻找另一种方式。我猜这可能与听众有关。但我不知道怎么做。任何解决方案?
答案 0 :(得分:0)
您的代码无法编译,似乎没有多大意义,所以我重写了它。将来,请确保您有一个完整的例子。
代码杀死你PC的原因是因为你应该在你的while循环中稍微等待一段时间让计算机知道它有机会呼吸。 10毫秒就足够了。
import java.awt.AWTException;
import java.awt.Color;
import java.awt.Robot;
public class Main
{
public static void main(String[] args)
{
Robot robot = null;
try
{
robot = new Robot();
} catch (AWTException e1)
{
e1.printStackTrace();
}
Color lastPixelColor = null;
int counter = 0;
while (true)
{
Color pixelColor = robot.getPixelColor(900, 900);
if (!pixelColor.equals(lastPixelColor))
{
counter++;
System.out.println(counter);
}
lastPixelColor = pixelColor;
try
{
// You need to sleep so you don't murder your CPU
Thread.sleep(10);
} catch (InterruptedException e)
{
}
}
}
}