javafx - 关于为什么在尝试抓取窗口大小时对象不会画圆的困惑
问题描述
所以,我在一堂课上制作了一个窗格
@Override //Overridden nerd
public void start(Stage primaryStage) {
//makes a ball
Ball ball = new Ball();
//pause and resume animation
ball.setOnMousePressed(e -> ball.pause());
ball.setOnMouseReleased(e -> ball.play());
//increase/decrease speed
ball.setOnKeyPressed(e-> {
if(e.getCode() == KeyCode.UP) {
ball.increaseSpeed();
}
else if (e.getCode() == KeyCode.DOWN) {
ball.decreaseSpeed();
}
});
//creating a scene and setting its background
Scene scene = new Scene(ball, 500, 500);
primaryStage.setTitle("Random Walker");
primaryStage.setScene(scene);
primaryStage.show();
ball.requestFocus();
}
public static void main(String[] args) {
Application.launch(args);
}
}
我试图让动画从窗格的中心开始球,然后从墙上反弹(我还没有在反弹部分,所以我知道这还不完美,但我正在尝试)
我的问题是,当我尝试让球从当前大小的窗口中绘制出来时,它根本不会绘制任何东西,但是如果我手动输入默认屏幕尺寸,它就会起作用。任何见解都会很棒,因为我一直在努力寻找任何方法来做到这一点,谢谢。
public class setup extends Application {
@Override //Overridden nerd
public void start(Stage primaryStage) {
//makes a ball
Ball ball = new Ball();
//pause and resume animation
ball.setOnMousePressed(e -> ball.pause());
ball.setOnMouseReleased(e -> ball.play());
//increase/decrease speed
ball.setOnKeyPressed(e-> {
if(e.getCode() == KeyCode.UP) {
ball.increaseSpeed();
}
else if (e.getCode() == KeyCode.DOWN) {
ball.decreaseSpeed();
}
});
//creating a scene and setting its background
Scene scene = new Scene(ball, 500, 500);
primaryStage.setTitle("Random Walker");
primaryStage.setScene(scene);
primaryStage.show();
ball.requestFocus();
}
public static void main(String[] args) {
Application.launch(args);
}
}
解决方案
推荐阅读
- google-cloud-platform - 检查数据流错误
- python-2.7 - 调用列表内的列表对象
- node.js - 用单例续集
- jquery - 使用 jquery 作为字符串返回 JSON 对象(XSS)
- rx-java2 - 如果用户离开屏幕,则不会执行 RxJava2 操作
- javascript - Google Drive API v3 未列出文件/文件夹的指定元数据
- python - 没有名为“PySocks”的模块,但我已经安装了这个模块
- php - PHP Mysql 搜索页面
- python - 解决此错误的任何方法,在行中:“std=float(line)-average ValueError: could not convert string to float”
- html - 扩展身高css