Я пытаюсь заставить изображение «двигаться» с помощью клавиатуры. Изменение положения изображения внутри самой сцены. Мне удалось добавить setOnMouseClicked () на изображение и изменить положение, но, похоже, он не работает с клавишами со стрелками. Предположим, что я делаю что-то не так.
Вот код:
public class DEPImageMovement extends Application {
@Override
public void start(Stage primaryStage) {
Pane pane = new Pane();
pane.setStyle("-fx-background-color: RED");
Image img = new Image("Images/mappy.jpg");
final double centerX = img.getWidth()/2, centerY = img.getHeight()/2;
ImageView imgw = new ImageView(img);
imgw.setX(-centerX);
imgw.setY(-centerY);
imgw.setOnKeyPressed(a ->
{
switch (a.getCode())
{
case UP: {
imgw.setY(imgw.getY()-50); System.out.println("Up"); break;}
case DOWN: {
imgw.setY(imgw.getY()+50); System.out.println("Down"); break;}
case LEFT:{
imgw.setX(imgw.getX()-50); System.out.println("Left"); break;}
case RIGHT:{
imgw.setX(imgw.getX()+50); System.out.println("Right"); break;}
default:{
System.out.println("Default"); break;}
}
});
pane.getChildren().add(imgw);
Scene scene = new Scene(pane, 250 ,250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Я хочу использовать клавиши со стрелками для перемещения изображения. Если доступны более простые решения, они также приветствуются, если они решают ту же проблему, используя меньше или более простой код / правильный синтаксис. Я просто играю с этим, пытаясь научиться делать это разными способами.