我正在尝试使用箭头键在 javafx 中移动形状,但无法使其工作。
我有一个单独的形状类,但无法显示翻译。该形状甚至没有出现在构造函数中设置的正确坐标处。
我真的不确定我做错了什么,希望得到任何意见。
类别:Moon_master
公共(public)类 Moon_master 扩展应用程序{
@Override
public void start(Stage primaryStage) {
hero p1 = new hero();
p1.setOnKeyPressed(e -> {
if (e.getCode() == KeyCode.UP){
p1.moveUp();
} else if (e.getCode() == KeyCode.DOWN){
p1.moveDown();
}
});
Pane root = new Pane();
root.getChildren().add(p1);
Scene scene = new Scene(root, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
p1.requestFocus();
}
public static void main(String[] args) {
launch(args);
}
}
类别:英雄
/*
* @author jack
*/
public class hero extends StackPane {
Rectangle body = new Rectangle(200,125,50,50);
double newX , newY;
public hero () {
getChildren().add(body);
}
public void moveUp(){
newY = body.getY() - 6;
body.setY(newX);
}
public void moveDown(){
newY = body.getY() + 6;
body.setY(newY);
}
}
最佳答案
完成评论中已经提到的修复后,制作英雄 一个简单的 Pane 而不是 StackPane。
public class hero extends Pane {
StackPane 是一个布局 Pane ,它不断地与您手动放置英雄进行斗争。
关于java - 在javafx中移动形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44618521/