尝试通过鼠标点击切换灯光

时间:2014-07-07 16:28:59

标签: java

public void processLightClick(int row, int col) { 
    states[row][col] = !states[row][col];

    if(states[row][col] = true){
        lights[row][col].setFill(ON_PAINT);
    }
    else if(states[row][col] = false){
        lights[row][col].setFill(OFF_PAINT);
    }
    turns++; 

    System.out.println(row+":"+col);
    status.setText("Turn Number " + turns);
}

这是我的代码。我每次按下一个特定的方格时都试图让它切换状态和颜色,但是当我按两次相同的方格时,油漆保持不变并且不会来回切换状态

2 个答案:

答案 0 :(得分:1)

您在if语句中使用赋值运算符“=”而不是比较运算符“==”。试试这个。

public void processLightClick(int row, int col) { 
    states[row][col] = !states[row][col];

    if(states[row][col] == true){
        lights[row][col].setFill(ON_PAINT);
    }
    else if(states[row][col] == false){
        lights[row][col].setFill(OFF_PAINT);
    }
    turns++; 

    System.out.println(row+":"+col);
    status.setText("Turn Number " + turns);
}

答案 1 :(得分:1)

正如user2615117指出的那样,您没有使用比较运算符,而是使用赋值运算符。但是,在这里,我还会使用ternary operator来使代码更简洁:

lights[row][col].setFill((states[row][col] == true) ? ON_PAINT : OFF_PAINT);

另一个可能的改进是拥有一个Light对象数组,其中包含灯光的状态和颜色。