任务:“编写一个接受正整数n并显示n x n棋盘的程序。只需更改代码中的一行,即可编写程序使其适用于不同的n值。在网格窗格中使用不可编辑的文本字段对象,并使用css更改颜色。
我不明白为什么我的代码只生成两行和太多列?我只是在试着做5x5。抱歉,缺少javadoc注释。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class SD_Checkerboard extends Application {
@Override
public void start(Stage s) {
//Create the integers for creating the grid.
int n=5;
int row;
int column;
//Create the gridpane.
GridPane grid = new GridPane();
for(row=0; row<n; row++) {
for(column=0; column<n; column++) {
TextField box = new TextField();
box.setEditable(false);
if(row + column % 2== 1){
box.setStyle("-fx-background-color: black");
grid.add(box,column,row);
}
else {
box.setStyle("-fx-background-color: white");
grid.add(box,column,row);
}
}
}
s.setScene(new Scene(grid));
s.setTitle("Checkerboard");
s.show();
}
public static void main(String[] args) {
launch(args);
}
}发布于 2018-03-10 09:45:39
与乘法和除法一样,模算术比加法具有更高的优先级。所以row + column % 2应该是(row + column) % 2。
文本字段就在那里,它们只是没有像您想象的那样着色:基本上,一旦您到达row=2,它们都是白色的(因为row + column % 2与row + (column % 2)相同,如果为row>1,则始终为>1 )。
https://stackoverflow.com/questions/49204111
复制相似问题