Кнопки и TabPane не получают событие OnMouseMove, примененное к его родительскому элементу. - PullRequest
0 голосов
/ 08 июня 2018

В настоящее время я программирую систему инвентаризации, которая включает в себя щелчок, чтобы «прикрепить» элемент к вашей мыши, который затем можно поместить в другое место.

Событие, которое отслеживает это:

getMainUI().setOnMouseMoved(e -> {
            if (getStoredItem() != null){
                getStoredItem().getImage().setLayoutY( e.getSceneY() + 30);
                getStoredItem().getImage().setLayoutX( e.getSceneX() - 30);
            }
        });

Моя структура проекта - это StackPane в качестве корня сцены, с BorderPane (mainUI) и нормальной панелью (overLay), добавленной как дочерние.Изображение сохраненного элемента следует за мышью, как и ожидалось, если только мышь не вводит любую кнопку / ToggleButton в сцене или правую область BorderPane, которая является панелью вкладок, содержащей инвентарь.

Обычно я ожидаю, что тамбыть элементом сверху, поглощающим событие, но единственным узлом над пользовательским интерфейсом является overLay, для которого pickBounds имеет значение false, чтобы пользователь мог щелкнуть пользовательский интерфейс.Здесь довольно много.

...