Solution/Обход
- Используйте GridPane вместо TilePane.
- Когда пользователь нажимает на элемент в сетке, звоните toFront по этому товару.
Пример кода
Я добавил следующий код в calculator, который основан на макете сетки, которая выглядит аналогично черепичной макета в скриншоте образца. С измененным приложением у меня не было перекрытия кнопок калькулятора. Удивительным для меня, хотя они выглядели немного странно, масштабированные кнопки сделали калькулятор проще в использовании ...
button.setOnMouseEntered(new EventHandler<MouseEvent>() {
@Override public void handle(MouseEvent mouseEvent) {
button.toFront();
button.setScaleX(1.6); button.setScaleY(1.6);
}
});
button.setOnMouseExited(new EventHandler<MouseEvent>() {
@Override public void handle(MouseEvent mouseEvent) {
button.setScaleX(1); button.setScaleY(1);
}
});
фона
Как вы отмечаете , проблема перекрытия неразрешима в некоторых фондах Panes вроде TilePane
. Это связано с тем, что z-порядок, а также относительная позиция расположения узла определяются взаимным положением узла в дочернем списке TilePane. В таких панелях вы не можете изменить z-порядок и перенести его на передний план, не перемещая узел до последней позиции макета в TilePane
.
Есть ли способ (взломать?) Для реализации моего собственного кода извлечения порядка детей для рисования, когда JavaFX перекрашивает TilePanel?
Да, вы можете взломать TilePane code, если у вас есть навыки.
Есть ли способ (взломать?) Для реализации моего собственного кода извлечения порядка детей для рисования, когда JavaFX перекрашивает TilePanel? – vladeck