单击即可获得双击:(
在fxml文件中:
<Button fx:id="A_button" onMouseClicked="#buttonAClicked">
在控制器中
private void buttonAClicked(MouseEvent mouseEvent) {
if (mouseEvent.getButton().equals(MouseButton.PRIMARY)) {
if (mouseEvent.getClickCount() == 2) {
System.out.println("Double clicked A_button");
}
if (mouseEvent.getClickCount() == 1) {
System.out.println("Single clicked A_button");
}
}
}
不幸的是,我发现没有抓住双击 - 只有单击。 在调试器中,单击count为1.
更新 由于我无法弄清楚为什么它在JavaFX 2.2.3-b05上不适合我,我做了一个解决方法并且不再需要双击。我在UI中添加了一个“加载”按钮。现在用户必须单击并按下加载按钮。
答案 0 :(得分:2)
已在JavaFX 2.2中修复,请参阅http://javafx-jira.kenai.com/browse/RT-19346
注意,双击时您将收到两个事件:
E.g。如果您运行下面的代码并双击按钮输出将是:
clicks: 1
clicks: 2
代码(使用2.2.4测试):
public class DoubleClicks extends Application {
@Override public void start(Stage stage) {
Button btn = new Button();
btn.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
System.out.println("clicks: " + event.getClickCount());
}
});
stage.setScene(new Scene(new Group(btn), 300, 250));
stage.setTitle(VersionInfo.getRuntimeVersion());
stage.show();
}
public static void main(String[] args) { launch(); }
}