java - 如何使用箭头JavaFX使图像移动

标签 java javafx keypress eventhandler

所以基本上我正在导入汽车的图像,并尝试通过使用箭头键向上、向下、向左、向右发出信号来让汽车移动。由于与 swing 和 awt 相比,JavaFX 的使用较少,因此我在 Internet 上可以找到的资源非常少。我是初学者,尝试过但在查看文档时感到困惑。

所以这是我所做的:

public class Car extends Application{

  private int xcoor = 0;
  private int ycoor = 0;
  private int velx  = 0;
  private int vely  = 0;

  @Override 
  public void start(Stage primaryStage) throws Exception{

    Pane pane = new Pane();
    Image carImage = new Image("car.png");
    ImageView cImage = new ImageView(carImage);
    cImage.setFitWidth(120);
    cImage.setFitHeight(80);
    pane.getChildren().addAll(cImage);
    Scene scene = new Scene(pane, 800, 500);


    scene.setOnKeyPressed(new EventHandler<KeyEvent>(){
      @Override
      public void handle(KeyEvent event){

        //How to make the car move with arrow?

      }
    });

    primaryStage.setTitle("Car"); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 

  }


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

}

目前,我正在找出 javaFX 中处理按键的正确语法,如果有任何帮助,我将不胜感激。

最佳答案

只需更改layoutX 属性

scene.setOnKeyPressed(new EventHandler<KeyEvent>(){
  @Override
  public void handle(KeyEvent event){

    if (event.getCode() == KeyCode.RIGHT) {
        cImage.setLayoutX(cImage.getLayoutX() + 10);
    } else if (event.getCode() == KeyCode.LEFT) {
        cImage.setLayoutX(cImage.getLayoutX() - 10);
    }
  }
});

您可能还对 JavaFX Detect mutliple keyboard keys pressed simultaneously 感兴趣

关于java - 如何使用箭头JavaFX使图像移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41854789/

相关文章:

css - JavaFX 调整图表 Axis 中的文本大小

c - 在 C 中实现 KeyPress 事件

jquery - 强制tinymce通过回车键输入换行符而不是创建一个新段落

java - 通过网络和字节数组序列化/反序列化Java对象

java - 字符串数组java

java - JASIG CAS 以编程方式登录(使用 Liferay)

javafx 文本框ip地址

java - 打印具有自动分页功能的 WebView/WebEngine

Python:通过 SSH 发送按键事件

java - 我在哪里可以获得 Spring 源代码?