展开全部
主要思路:
JavaFX 显示图片,常用的是ImageView
JavaFX 响应 左右按钮, 那么可以用Scene 来接收62616964757a686964616fe58685e5aeb931333365656635键盘按下的事件,然后控制图片左右移动
显示的效果图
参考代码import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.input.KeyCode;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class JavaFXDemo extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
BorderPane root = new BorderPane(); // 边界布局
Scene scene = new Scene(root, 530,230);// 创建场景
// 显示图片组件
ImageView imgView = new ImageView(this.getClass().getResource("jbp.png").toExternalForm());
root.setCenter(imgView);
// 主舞台的设置
primaryStage.setScene(scene);
primaryStage.setTitle("拖动图片");
primaryStage.show();
// 响应键盘按下事件 ,注意添加对象是scene ,不是 imgView
scene.setOnKeyPressed(e -> {
KeyCode code = e.getCode();
if (code.equals(KeyCode.LEFT)) { // 按下了左键
imgView.setTranslateX(imgView.getTranslateX() - 10);
} else if (code.equals(KeyCode.RIGHT)) {//按下了右键
imgView.setTranslateX(imgView.getTranslateX() + 10);
} else if (code.equals(KeyCode.UP)) {//按下了上方向键
imgView.setTranslateY(imgView.getTranslateY() - 10);
} else if (code.equals(KeyCode.DOWN)) {//按下了下方向键
imgView.setTranslateY(imgView.getTranslateY() + 10);
}
});
}
}