我刚刚尝试了一个测验并遇到了以下问题。
以下哪些说法是正确的?
- Button 可以触发 ActionEvent。
- Button 可以触发 MouseEvent。
- Button 可以触发 KeyEvent。
- 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/