當我關閉它們時,我花了一段時間才意識到鼠標事件通過阻塞對話框時發生了什麼,但我終於明白了原因。我仍然不知道解決這個問題的好方法。JavaFX MouseEvent繼續當我刪除它發生的對象
我有一個自定義對話框(即阻止鼠標)與關閉按鈕。當我點擊關閉按鈕時,我從場景中移除了對話框,但是JavaFx仍在處理MouseEvent,現在它發現在取消按鈕所在的位置沒有任何屏幕,因此組件接收到一個MouseEvent。當我看到他們按下取消並刪除對話框時,如何使mouseEvent停止處理?或者,有沒有辦法讓對話框的刪除不會發生,直到它完成處理MouseEvent?
示例代碼的問題:
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.shape.Rectangle;
import javafx.scene.input.MouseEvent;
import javafx.scene.control.Button;
var theScene:Scene;
var btn:Button;
Stage {
title: "Application title"
scene: theScene= Scene {
width: 500
height: 200
content: [
Rectangle{
width: bind theScene.width
height: bind theScene.height
onMouseClicked: function(e:MouseEvent):Void{
println("Rectangle");}
},
Button{
layoutX: 20 layoutY: 50
blocksMouse: true
text: "JustPrint"
action:function():Void{
println("JustPrint");}
},
btn = Button{
layoutX: 20 layoutY: 20
blocksMouse: true
text: "Cancel"
action:function():Void{
println("Cancel");
delete btn from theScene.content;}
},
]
}
}
當你按下 「JustPrint」 你:
JustPrint
當你按下 「取消」,您可以:
Cancel
Rectangle
我確實需要的onMouseClicked在我原來的計劃背景(或至少onMouseReleased這給了同樣的問題),但它看起來像我可以只刪除按鈕動作,並使其響應onMouseClicked,而問題解決了。 感謝您的幫助。 凱爾 – Kyle 2010-06-10 15:29:05