2012-01-31 26 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