我在SceneBuilder中创建了一个9x9 GridPane
,我希望为每个单元格添加单独的TextFields
。我确定还有其他方法可以创建像这样的大表,但我并不是在寻找一种不同的方法(这是我学习经历的一部分)。我不想在FXML / SceneBuilder中添加TextFields
;我想在数组中跟踪它们,以便我可以访问它们各自的值,因此我想在Controller中一次创建一个,然后将它们添加到数组以及{{1}的每个单元格中。 }。
以下是我的控制器尝试添加GridPane
的部分(我尝试在将它们添加到数组之前创建它们):
TextFields
我没有在运行时之前收到错误,并且场景没有更新。
编辑:我查看了@FXML
private GridPane gridPane;
private TextField myTextField[][] = new TextField[9][9];
.
.
.
@Override
public void initialize(URL url, ResourceBundle rb) {
for (int i = 0; i < 9; ++i){
for (int j = 0; j < 9; ++j){
TextField tempTextField = new TextField();
Font myFont = new Font("System",38);
tempTextField.setFont(myFont);
tempTextField.setText(i + ", " + j);
tempTextField.setPrefSize(70, 70);
myTextField[i][j] = tempTextField;
gridPane.add(tempTextField,i,j);
System.out.println("TextField " +i+j+" Created!");
}
}
}
并注意到我在
StackTrace
FXML文件:
gridPane.add(tempTextField,i,j);
答案 0 :(得分:2)
尝试在控制器中实现javafx.fxml.Initializable
接口,并将setGrid()
逻辑移动到随附的方法。