调用方法时出错

时间:2015-07-17 20:24:40

标签: java processing

在我的FloodFill课程中,我定义了一个resolution方法,我想在setupdraw中调用该方法。但是当我添加resolution(String[] args);来调用它时,我有一个错误,说我错过了一个右括号。

以下是整个代码:

static int[][] matrix={
    {1,1,1,1,1,1,1,1,1,1,1},
    {1,2,2,2,2,2,2,2,2,2,1},
    {1,2,3,3,3,3,3,3,3,2,1},
    {1,2,3,4,4,4,4,4,3,2,1},
    {1,2,3,4,1,1,1,4,3,2,1},
    {1,2,3,4,1,1,1,4,3,2,1},
    {1,2,3,4,1,1,1,4,3,2,1},
    {1,2,3,4,4,4,4,4,3,2,1},
    {1,2,3,3,3,3,3,3,3,2,1},
    {1,2,2,2,2,2,2,2,2,2,1},
    {1,1,1,1,1,1,1,1,1,1,1},
  };

void setup() {
  size(1000, 600);
  noCursor();
  noStroke();
  fill(0);

  // periodic updates
  if (!callback) {
    frameRate(60); //<>//
    loop();
  } else noLoop(); // or callback updates 
  //int[][] array = new int[10][10];
  //System.out.println(Arrays.deepToString(array));
  tuioClient  = new TuioProcessing(this);
  System.out.println(Arrays.deepToString(grid));

resolution(String[] args) ;

}


void draw() {

  // This part detects the fiducial markers 
  float obj_size = object_size*scale_factor; 
  float cur_size = cursor_size*scale_factor; 

  ArrayList<TuioObject> tuioObjectList = tuioClient.getTuioObjectList();
  for (int i=0; i<tuioObjectList.size (); i++) {
    TuioObject tobj= tuioObjectList.get(i);
    stroke(0);
    fill(0, 0, 0);
    pushMatrix();
    translate(tobj.getScreenX(width), tobj.getScreenY(height));
    rotate(tobj.getAngle());
    rect(-80, -40, 80, 40);
    popMatrix();
    fill(255);
    x = round(10*tobj.getX ());
    y = round(10*tobj.getY ());
    iD = tobj.getSymbolID();
    int taille = fiducialsList.length;
    for (int o = 0; o<taille; o++) {
      if (iD == o) { 
        myType = fiducialsList [o];
      }
    } 
    //System.out.println(myType);
    activList.add(new Fiducial (x, y, iD, myType));
    fiducialCoordinates ();
    grid [x][y] = 1 ;

    circuitState ();
    for (int p = 0; p < 10; p++) {
      for (int r = 0; r < 10; r++) {
        System.out.print(grid[p][r] + " ");
      }
      System.out.print("\n");
    }
    System.out.print("\n");
    // activList.removeAll(activList);
  }
  for (int[] row : grid)
    Arrays.fill(row, 0);
}

void fiducialCoordinates () {
  System.out.println(activList);
}


public static class FloodFill {

  public static void resolution(String[] args) {
 // Do stuff
  }
public static void solve(int[][] matrix, int x, int y, int fillValue) {
// Do stuff
}

当我调用其他方法时(例如fiducialCoordinates ();),它可以正常工作。是否有另一种方法来调用此方法,因为它是在特定类中定义的?

这是在Processing中使用的java。 谢谢你的帮助

2 个答案:

答案 0 :(得分:1)

致电时不需要String[]

FloodFill.resolution(args) ;

应该足够了

答案 1 :(得分:1)

调用方法时,请勿指定参数的类型:

resolution(args);

应该有效(除了args未定义 - 您需要将这些方法从setup()方法传递给main()方法。)

此外,resolution是在单独的类中定义的,因此您必须像这样调用它:

FloodFill.resolution(args);