2015-02-21 5 views
0

У меня есть StackPane, к которому я добавляю дочерние панели. Каждый ребенок имеет обработчики MouseEvent, чтобы перетащить его вокруг StackPane. Работает отлично. Затем я также хочу изменить размер панели. Поэтому я добавил 8 маленьких «перетаскиваемых» стекол для ребенка в соответствующих местах, каждый со своими обработчиками щелчка/перетаскивания.Редактирование размера узла JavaFX8

Проблема: однажды возникает событие «перетаскивания» панели, мне нужно установить опорную точку для родительской панели. Эта опорная точка будет зависеть от того, на какую щелку нажата перетащить. Как определить, какая панель была нажата в обработчике? Я подозреваю, что мне не хватает чего-то очень очевидного, но я не вижу его (Google не дает ответов).

Я пробовал использовать hashcode, но не повезло.

+0

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

+0

Исходя из C фона (это без ++), я назначил тот же обработчик для всех панелей в ожидании использования switch() для обработки разных панелей, но, возможно, восемь разных обработчиков - лучший способ пойти. Спасибо за подсказку. – Frank

+0

Я (почти) всегда предпочитаю использовать другой обработчик для каждого узла, а не доступ к источнику события. –

ответ

0

Наконец-то понял, какое решение было после того, как Google разошлась по другому вопросу. Я попытался event.getSource(), но не смог связать возвращенный объект с моей панелью. Решение - это просто cast it (Panel) event.getSource(), и тогда все идет! Говоря о тусклом!

Смежные вопросы