当前位置: 首页 > 知识库问答 >
问题:

JavaFX按钮事件只触发一次

沈乐邦
2023-03-14

所以我有一个JavaFX应用程序,它包含一个按钮,应该可以打开DirectoryChooser onclick。当我触发它一次时,它会做它应该做的,非常好。我一关闭DirectoryChooser对话框,按钮就什么都不做了。我在网上搜索一些“事件重置”或类似的内容,因为我认为该事件可能仍处于“活动”状态,因此不再触发,但没有任何结果:

// 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();
    }
});

不知道这是完全错误的方法,还是我错过了一些重要的东西。我希望你们能弄清楚。

共有1个答案

金慈
2023-03-14

所以在Uluk Biy的帮助下,我遇到了问题。在更新例程中,按钮是新创建的,因此它的事件处理程序不再存在。我将按钮添加到属性中,因此不需要每次调用更新例程时都替换它,并且事件处理程序仍然存在。

 类似资料:
  • 问题内容: 似乎是一个简单的问题,但解决其他问题的方法似乎对我没有用。 试图通过单击按钮来触发AJAX请求,但似乎并未触发。 HTML示例 javascript 问题答案: 您拥有的代码在拨弄中工作得很好。初始页面加载后,按钮是否通过AJAX动态呈现? 用 代替

  • 我正在尝试捕获提交按钮click事件,并将页面滚动到顶部,如果它还没有在那里。 由于某些原因,该事件不会第一次触发,即如果滚动大于0,则不会发生滑到页面顶部的情况。只有第二次才会激活。 有什么想法或建议吗?我是不是漏掉了什么?谢谢.

  • 问题内容: 这是我想做的事情:单击页面上的一个按钮,这又使(2)事情发生: 显示一个ModalPopup,以防止用户按下任何按钮或更改值 在方法后面调用我的代码,完成后隐藏ModalPopup 这是ASP标记: 现在,这是我在C#代码后面的代码: 为什么不起作用?ModalPopup可以完美显示,但是btnSaveData_Click事件从不触发。 更新: 第一个建议对我不起作用。我还尝试了您的第

  • 我想自动化一个在线游戏。它在仅基于终端的情况下工作。但是我想添加一个JavaFXUI,现在我不知道把Thread放在哪里。等待直到达到某个LocalDateTime。JavaFX在哪里等待它的事件(比如按钮点击,…),我可以覆盖该方法吗?或者有没有一种方法可以为javaFX创建自定义LocalDateTime事件和侦听器? 如果在initialize()中添加一个Thread.wait,则整个场景

  • 我是一个新手,我正在尝试创建一个应用程序来在我的投资组合中使用。本质上,该程序是一个可以访问不同菜单的菜单(json文件:texas_pick.js,Breakth.js…),该程序旨在以按钮的形式显示菜单选项,按钮的详细信息从各自的json文件中检索。我面临的问题是,单击菜单选项时,会检索最后一个菜单项的数据。我将后端编程为只将商品名称和价格推送到数据库,而前端则检索这些数据并将其显示在表上。检

  • 问题内容: 我是JavaFx的新手。在我的JavaFX应用程序中,我设置了onAction属性,当我使用鼠标按下按钮时,它可以正常工作。即使用户按下Enter on按钮,我也想触发同样的操作。我知道我可以使用偶数处理程序来做到这一点。但是,当我阅读onAction JavaDoc时,它说此事件通过按键触发。 属性说明: 按钮的动作,每当触发按钮时就会调用该动作。这可能是由于用户使用鼠标单击按钮,触