小编Coo*_*ter的帖子

ActionEvent 获取按钮 JavaFX 的来源

我有大约 10 个按钮将被发送到相同的方法。我想要识别来源的方法。所以该方法知道按钮“完成”已经唤起了这个功能。然后我可以添加 if 语句的 switch case 来相应地处理它们。这是我尝试过的

//Call:
    btnDone.setOnAction(e -> test(e));


   public void test(ActionEvent e) {
        System.out.println("Action 1: " + e.getTarget());
        System.out.println("Action 2: " + e.getSource());
        System.out.println("Action 3: " + e.getEventType());
        System.out.println("Action 4: " + e.getClass());
    }
Run Code Online (Sandbox Code Playgroud)

输出结果:

Action 1: Button@27099741[styleClass=button]'Done'
Action 2: Button@27099741[styleClass=button]'Done'
Action 3: ACTION
Action 4: class javafx.event.ActionEvent
Run Code Online (Sandbox Code Playgroud)

完成是按钮上的文本。正如您所看到的,我可以使用 e.getTarget()和/或e.getSource()然后我必须对其进行子字符串化,因此只出现“完成”。有没有其他方法可以在撇号中获取字符串而不必使用子字符串。

更新:我尝试过传递 Button 并且它有效,但我仍然想知道使用 ActionEvent 的解决方案。

//Call:
        btnDone.setOnAction(e -> test(btnDone));


       public void test(Button e) {
            System.out.println("Action 1: " + e.getText());
        }
Run Code Online (Sandbox Code Playgroud)

输出是 Action 1: …

javafx get button actionevent

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

actionevent ×1

button ×1

get ×1

javafx ×1