В коде, который у вас есть в данный момент, вы перемещаете ap_services
в конец z-порядка и vb_adv
в начало:
ap_services.toBack();
vb_adv.toFront();
Затем вы создаете и настраиваете ScaleTransition
. Обратите внимание, что выполнение этой части по сути не занимает много времени; все, что вы делаете, это настраиваете анимацию, которая будет запускаться позже.
Следующее, что вы делаете, это перемещаете ap_services
вперед:
ap_services.toFront();
Обратите внимание, что это произойдет практически сразу после предыдущих вызовов toFront()
и toBack()
, и, конечно, это сводит на нет эффект этих вызовов. Таким образом, ваши первоначальные вызовы фактически выполняются (не «игнорируются»), но вы немедленно делаете что-то, что отменяет их эффект.
Что вы действительно хотите, так это выполнить ap_services.toFront()
после завершения ScaleTransition
. Вы можете сделать это, поместив этот вызов в обработчик onFinished()
:
// ap_services.toFront();
expandAdvertising.setOnFinished(e -> ap_services.toFront());