我想用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);
}
}
Weit类:
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;
}
}
实际上,当我按下开始按钮时,它应该是一个随机数,并且矩形会变成蓝色,直到达到随机数为止。那么您必须输入计数的数字,然后在正确的时候赢了。
答案 0 :(得分:2)
它不会崩溃。
请注意:
for(int i = 0; i <= wiedhol; i++){
try {
ra.setFill(Color.BLUE);
Thread.sleep(1000);
ra.setFill(Color.LIGHTBLUE);
}catch(InterruptedException ie){}
}
thread.sleep()
会暂停您的程序。