Связанный вопрос: Узлы - выберите слой для отображения JavaFX2
Я использую JavaFx 8 с SceneBuilder 2. У меня есть несколько панелей в качестве дочерних элементов StackPane, и я хотел бы сделать видимым только передний узел. Мне нужно сделать это, не отключая видимость других детей, и я попытался сделать это, используя параметр непрозрачности, показанный ниже (игнорируйте тот факт, что видимость отключена):
Без отключения видимости других дочерних узлов дети всегда нарисованы друг над другом, даже при использовании разных режимов смешивания (SRC_OVER & SRC_ATOP), как показано ниже:
Причина, по которой я хотел бы избежать установки видимости на false для дочерних элементов, заключается в том, что я хочу оживить переход между панелями, в которых одна панель должна быть нарисована поверх другой.
Мне, должно быть, здесь что-то не хватает, но я не понимаю, что это такое?
Ответ заключается в том, чтобы установить цвет фона панелей. Непрозрачность не действует без предварительной установки цвета фона.
Вы можете попробовать установить видимость на false. Для этого вызовите setVisible(false)
на узле, который вы хотите сделать невидимым в StackPane.
Смотрите Node :: setVisible
background color
к панелям, который заблокирует видимость для других панелей. Более того, настройка видимости также не кажется плохой опцией. Вы всегда можете изменить видимость при переходе.