编译像素识别脚本时出现Javac错误

时间:2012-01-31 20:55:34

标签: java image colors awt awtrobot

J Barclay除了解决我的一个问题外,还清理了所有问题!耶!!

非静态方法getRGB()无法从静态上下文中引用。

第28行 -

新代码 -

    import java.awt.*;
    import java.awt.event.*;
    import java.awt.Robot;
    import java.awt.AWTException;
    import java.awt.Rectangle;
    import java.awt.Color;
    import java.awt.Toolkit;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;

    public class GunningBot{
    public static void main(String[] args) throws Exception{

    Robot robot = new Robot();
Color color = new Color(195, 174, 196);

{
Rectangle rectangle = new Rectangle(0, 0, 1075, 700);

    {
    BufferedImage image = robot.createScreenCapture(rectangle);
    search: for(int x = 0; x < rectangle.getWidth(); x++)
    {
        for(int y = 0; y < rectangle.getHeight(); y++)
        {
            if(image.getRGB(x, y) == Color.getRGB())
            {
                robot.mouseMove(x, y);
                break search;
            }
        }
    }
    }
    }

1 个答案:

答案 0 :(得分:0)

第一个问题是您正在访问类Robot上的实例方法而不是机器人实例。

只需更改案例即可修复:

BufferedImage image = robot.createScreenCapture(rectangle);

Color.getRGB(195, 174, 196)的问题在于它是一个getter,它没有参数。调用此方法的方法是:

color.getRGB();

但同样,你正在使用没有实例的实例方法,你需要做的是:

Color color = new Color(r, g, b);
color.getRGB();