java - 哪个 Action 按钮可以在 JavaFX 中触发?

标签 java javafx javafx-8

我刚刚尝试了一个测验并遇到了以下问题。

以下哪些说法是正确的?

  1. Button 可以触发 ActionEvent。
  2. Button 可以触发 MouseEvent。
  3. Button 可以触发 KeyEvent。
  4. TextField 可以触发 ActionEvent。

我选择了前两个选项,但它说错了。按钮 ActionEvent 和 MouseEvent 可以放在按钮上,但不能放在 KeyEvent 上。

正确答案是什么?

最佳答案

所有四个陈述都是正确的,因为您可以用一些测试代码来验证:

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class EventTest extends Application {

    @Override
    public void start(Stage primaryStage) {
        Button button = new Button("Click Me");
        TextField textField = new TextField();

        button.addEventHandler(KeyEvent.KEY_PRESSED, e -> System.out.println("Key press on button"));
        button.addEventHandler(MouseEvent.MOUSE_PRESSED, e -> System.out.println("Mouse press on button"));
        button.addEventHandler(ActionEvent.ACTION, e -> System.out.println("Action on button"));
        textField.addEventHandler(ActionEvent.ACTION, e -> System.out.println("Action on text field"));

        VBox root = new VBox(10, textField, button);
        root.setAlignment(Pos.CENTER);
        root.setPadding(new Insets(24));
        primaryStage.setScene( new Scene(root) );
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

关于java - 哪个 Action 按钮可以在 JavaFX 中触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35558220/

相关文章:

JavaFX 从第二列选择文本与单击行中的位置无关

java - 在 Jooq 中使用泛型实现接口(interface)

java - 将自定义形状应用于 Android ListView

java - 将 JavaFx ListView 的选择索引绑定(bind)到整数属性

java - 如何在 JavaFX ChoiceBox 中显示默认选择

文本区域中的 JavaFX 多种颜色(JavaFX 8)

java - 自定义 Ant 构建和 JavaFX

java - 写入maven项目中的文件

c# - java中通过JNA访问.net dll

java - fileChooser.showOpenMultipleDialog() 太慢并且在选择大量文件时挂起