有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中的函数未完成

您好

这是我的第一个问题,我只是把编程作为一种爱好,所以当我试图帮助我时,请记住这一点

我有一个函数,它试图读取十字线的中心点。有点像游戏中的定位仪。代码如下所示:

public static Point location(BufferedImage image) {
        int pixelLeft;
        int pixelTop;
        Point point = new Point();

        for (int i = Main.RADAR_TOP+1; i < Main.RADAR_BOTTOM; i++) {
            pixelLeft = image.getRGB(Main.RADAR_LEFT+7, i);
            if ((((pixelLeft>>16) & 0xff) > 35 &&
                  ((pixelLeft>>8) & 0xff) > 35 &&
                  ((pixelLeft) & 0xff) > 35)){
                point.y = i;
                break;
            }
        }

        for (int j = Main.RADAR_LEFT+1; j < Main.RADAR_RIGHT; j++) {
            pixelTop = image.getRGB(j, Main.RADAR_TOP+5);
            if ((((pixelTop>>16) & 0xff) > 35 && 
                  ((pixelTop>>8) & 0xff) > 35 && 
                  ((pixelTop) & 0xff) > 35)){
                point.x = j;
                break;
            }
        }

        System.out.println("location: "+point.x+","+point.y);
/**        lastX = point.x;
        lastY = point.y;*/
        return point;
    }

发生的情况是,有时,此函数只是不将控制返回给主应用程序。基本上,它在运行时会被卡住。因此,函数中的最后一条注释要进行检查。我首先认为它可能与读取函数所在的类的静态成员有关,因此我将这些成员注释掉,正如您在最后看到的那样。但问题仍然存在

我真的看不出或想不出这种行为的任何原因。如果有任何想法或评论能指出我的错误或其他东西,我将不胜感激


共 (2) 个答案

  1. # 1 楼答案

    你确定那是主要的吗。雷达顶部比主顶部小。雷达底部? 否则forloop应该旋转一段时间(很长时间…)

  2. # 2 楼答案

    问题是location函数是由第二个函数调用的,而第二个函数在case语句中,我错过了中断。这就是应用程序“卡住”的原因