Проблема в том, что у Rectangle нет фокуса, а KeyEvents не срабатывает на узлах, которые не имеют фокуса.Вы можете попросить о фокусе, вызвав rectangle.requestFocus()
.Кажется, что просто нажав на него, вы не получите фокус, поэтому вы должны дать его «вручную».Если вы не хотите нажимать, вы можете решить, когда вы хотите получить прямоугольник в качестве фокуса, и после того, как он получит фокус, он также вызовет ключевые события.
Упомянутый мною onClick будет выглядеть какэто:
rectangle.setOnMouseClicked(event -> rectangle.requestFocus());