0
所以我有這個JavaFX應用程序,其中包含一個按鈕,應該打開DirectoryChooser onclick。當我觸發它一次,它做它應該做的事,非常好。只要我關閉DirectoryChooser對話框,該按鈕不會再做任何事情。我在網上搜索一些「事件重置」或類似的東西,因爲我想也許該事件仍然「活躍」,因此不會再觸發,但沒有任何結果:JavaFX按鈕事件只觸發一次
// first attempt
button.addEventFilter(MouseEvent.MOUSE_CLICKED,
new EventHandler<MouseEvent>() {
public void handle(MouseEvent e) {
// dirChooser.setTitle("Select Directory:");
file = dirChooser.showDialog(primaryStage);
// just incase only the DirectoryChooser wasn't opening
System.out.println("asdf");
// updates the application view with the new selected path
update();
// not sure, if this affects anything
// found it while looking for resetting of events
e.consume();
};
}
);
// secont attempt
button.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
DirectoryChooser dirChooser = new DirectoryChooser();
dirChooser.setTitle("Select Directory:");
file = dirChooser.showDialog(primaryStage);
update();
}
});
不知道這只是一個完全錯誤的方法,或者如果我錯過了重要的東西。我希望你們能弄明白。
你是什麼意思的「按鈕不再做任何事情」?第二次和以後的點擊沒有觸發事件處理程序? – 2014-08-28 10:47:45
那麼,DiaglogChooser沒有打開,沒有控制檯輸出,似乎沒有調用句柄函數。所以是的,它沒有被觸發。 – 2014-08-28 11:09:21
爲了調試目的,你可以註釋掉代碼中的dirChooser(和update())行,然後再次點擊。有沒有控制檯輸出? – 2014-08-28 11:22:21