【问题标题】:Javac errors when compiling pixel recognition script编译像素识别脚本时出现 Javac 错误
【发布时间】:2012-02-23 14:25:29
【问题描述】:

嗯,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;
            }
        }
    }
    }
    }

【问题讨论】:

    标签: java image colors awt awtrobot


    【解决方案1】:

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

    只要改变大小写,它就会被修复:

    BufferedImage image = robot.createScreenCapture(rectangle);
    

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

    color.getRGB();
    

    但同样,您使用的是在没有实例的情况下访问实例方法,您需要做的是:

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

    【讨论】:

    • 感谢您清除了所有错误,但只有一个错误。它与我似乎无法解决的 RGB 交易有关
    • 重新阅读我对访问“color.getRGB()”的建议——注意小写。您需要访问实例,而不是类。
    猜你喜欢
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多