2012-01-31 66 views
0

J Barclay清除了除我的一个问题之外的所有问题!好极了!!编译像素识别脚本时出现Javac错误

非静态方法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; 
      } 
     } 
    } 
    } 
    } 

回答

0

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

只是改变的情况下,它会被固定:

BufferedImage image = robot.createScreenCapture(rectangle); 

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

color.getRGB(); 

但同样,你使用访问实例方法没有一个实例,你需要做的是:

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

谢谢你,清理所有,但一个错误。它与RGB协议有关,我似乎无法得到海峡 – user1179522 2012-01-31 21:17:36

+0

剩余的错误是什么? – 2012-01-31 21:18:38

+0

重新阅读我建议用于访问“color.getRGB()”的内容 - 注意小写。你需要访问实例,而不是类。 – 2012-01-31 21:24:32