java - 在javafx中移动形状?

标签 java javafx

我正在尝试使用箭头键在 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/

相关文章:

Final 和有效 Final 变量的 JavaFX EventHandling

JavaFX - 在高 dpi 的 Canvas 上使用矩形绘制时避免模糊

java.util.NoSuchElementException : No line found

java - Spring MVC - 多部分表单数据

java - Spring - RestTemplate 调用 https rest 服务时出错(证书错误)

javafx - 如何删除 JavaFX 按钮(选中时)的默认边框发光?

java - 在 Spring 中 Autowiring 共享队列的正确方法

java - 如何从java读取.ptn文件

java - 使用 JavaFX 的交互式 GoT map

java - 如何将变量从 try 传递到 action 事件?