如何在EventHandler中使用getCode()

时间:2016-03-22 07:18:52

标签: java javafx-8

如何在getcode()方法中使用handle

我想了解哪个键被按下了。

注意:我不想在句柄方法中将“事件”更改为“KeyEvent”

public class Main extends Application implements EventHandler {
  public static void main(String[] args) {
    launch(args);
  }

  Scene scene;
  Group root = new Group();

  @Override
  public void start(Stage stage) {
    scene = new Scene(root, 600, 800);
    scene.setOnKeyPressed(this);
    stage.setScene(scene);
    stage.show();
  }

  @Override
  public void handle(Event event) {
    if (event.getEventType().equals(KeyEvent.KEY_PRESSED)) {
      System.out.println("You Pressing : " /* required code here */ );
    }
  }

}

1 个答案:

答案 0 :(得分:2)

唯一的选择是演员

System.out.println("You Pressing : " + ((KeyEvent) event).getCode() );

getCode仅是KeyEvent上的方法,因此您必须通过该静态类型的引用来访问它。您无法使用Event引用来完成此操作。如果你真的想要你可以使用反射,但这将比垂头丧气更加混乱和黑客。