Я сделал JavaFX приложение с gridpane, содержащей Прямоугольники:JavaFX EventHandler на нескольких объектах
private GridPane addGridPane() {
GridPane grid = new GridPane();
grid.setHgap(2);
grid.setVgap(2);
grid.setPadding(new Insets(0, 0, 10, 0));
int rows = 5;
int cols = 5;
for(int i=1; i<=rows; i++) {
for(int j=1; j<=cols; j++) {
r = new Rectangle(70, 70, Color.AQUA);
grid.add(r, j, i);
}
}
return grid;
}
Теперь я хочу Прямоугольник быть заполнены красным, когда мышь нажата на этом прямоугольнике. Для этого я попытался положить, что в секунду для цикла:
r = new Rectangle(70, 70, Color.AQUA);
r.setOnMouseClicked(new EventHandler<MouseEvent>()
{
@Override
public void handle(MouseEvent t) {
r.setFill(Color.RED);
}
});
grid.add(r, j, i);
Кажется, что каждый прямоугольник имеет это EventHandler, но только последний прямоугольник заполняется красным цветом. Есть ли проблема с Target Event?
Я также пытался использовать t.getSource(). – variables