Я новичок в Java FXML. Я все еще учусь использовать Scene Builder 2.0 и классы контроллеров. Я не понимаю, почему возвращается null
@FXML
public void gridClick(MouseEvent e){
Node source = (Node)e.getSource() ;
Integer colIndex = grid.getColumnIndex(source);
Integer rowIndex = grid.getRowIndex(source);
System.out.println("Mouse entered cell ["+colIndex+","+rowIndex+"]");
}
Я инициализировал все ячейки сетки в SceneBuilder Панель сетки была создана в SceneBuilder Затем я создал опорные панели для каждой ячейки винициализация класса контроллера:
for(int row=0;row<numRows;row++){
for(int col=0;col<numCols;col++){
AnchorPane slot=new AnchorPane();
slot.setStyle("-fx-border-color: black;-fx-border-width: 0.2;");
grid.add(slot,col,row);
}
}
Я не знаю, является ли это плохим подходом, но я пытаюсь учиться. Пожалуйста, помогите мне, как сделать это по-другому или почему это дает мне нулевое значение. Когда пользователь щелкает одну из ячеек сетки, т. Е. Они должны быть опорными панелями, я хочу, чтобы они щелкали опорную панель или строку и столбец ячеек сетки.