0
我有一個相當簡單的問題,但我不明白爲什麼這是... 我有一個Scene
與AnchorPane
作爲父節點。這個Pane
創建自定義Circle
s每當我點擊它。這按預期工作。
那些自定義Circle
也有事件處理程序。
如果我點擊一個圓圈,這個事件處理程序被觸發,但父母的事件處理程序也被觸發,導致創建一個新的自定義Circle
。
防止父節點也處理事件
任何想法我可能做錯了什麼?
我有一個相當簡單的問題,但我不明白爲什麼這是... 我有一個Scene
與AnchorPane
作爲父節點。這個Pane
創建自定義Circle
s每當我點擊它。這按預期工作。
那些自定義Circle
也有事件處理程序。
如果我點擊一個圓圈,這個事件處理程序被觸發,但父母的事件處理程序也被觸發,導致創建一個新的自定義Circle
。
防止父節點也處理事件
任何想法我可能做錯了什麼?
事件會自動傳遞給父代Node
(或Scene
代碼爲Node
),除非您在子代的事件處理程序中使用它們。要消費該事件,請在Circle
的事件處理程序中調用Event.consume()
,例如,
pane.setOnMouseClicked(evt -> {
Circle circle = ...
pane.getChildren().add(circle);
circle.setOnMouseClicked(event -> {
event.consume();
// TODO: circle specific event handling
});
});
謝謝!這工作完美 – RoiEX
這將有助於您發佈代碼 – MikeJRamsey56