我想用JavaFX做一个小游戏,但是当我单击开始按钮时,Java(TM)Platform SE二进制文件崩溃了!
package sample;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.effect.Bloom;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
import java.util.Random;
public class Main extends Application {
@Override
public void start(Stage primaryStage){
Weiter weiter = new Weiter(true);
Random rand = new Random();
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setVgap(10);
grid.setHgap(10);
grid.setPadding(new Insets(10, 10, 10,10));
Rectangle ra = new Rectangle(120, 120);
ra.setFill(Color.LIGHTBLUE);
ra.setStroke(Color.BLACK);
ra.setStrokeWidth(2);
ra.setEffect(new Bloom());
grid.add(ra, 1, 0);
Button start = new Button("start");
grid.add(start, 0, 3);
TextField feld = new TextField();
grid.add(feld, 1, 3);
Button btnBest = new Button("ok");
grid.add(btnBest, 3, 3);
start.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
if (weiter.getWeiter()){
int wiedhol = rand.nextInt(101);
while (wiedhol == 0){
wiedhol = rand.nextInt(101);
}
System.out.println(wiedhol);
for(int i = 0; i <= wiedhol; i++){
try {
ra.setFill(Color.BLUE);
Thread.sleep(1000);
ra.setFill(Color.LIGHTBLUE);
}catch(InterruptedException ie){}
}
}
}
});
primaryStage.setScene(new Scene(grid, 400, 300));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
类别Weiter:
package sample;
public class Weiter {
private boolean weiter;
public Weiter(boolean wert){
this.weiter = wert;
}
public boolean getWeiter(){
return weiter;
}
public void setWeiter(boolean wert){
this.weiter = wert;
}
}
实际上,当我按下开始按钮时,它应该是一个随机数,并且矩形变为蓝色,直到达到随机数为止。那么您必须输入计算的数字,然后在正确的时候赢了。
问题来源:Stack Overflow
它不会崩溃。
请注意:
for(int i = 0; i <= wiedhol; i++){
try {
ra.setFill(Color.BLUE);
Thread.sleep(1000);
ra.setFill(Color.LIGHTBLUE);
}catch(InterruptedException ie){}
}
这会thread.sleep()暂停您的程序。
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。