我有這個任務,使一個遊戲稱爲「猜數字」。用戶猜測一個介於1和1000之間的數字,點擊「確定」並收到一條消息,說明它是否正確,太高或太低。我的問題是事件處理。當我按「OK」時,程序崩潰。我究竟做錯了什麼?Java按鈕eventhandeling
package application;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class GjettTalletSpill extends Application implements EventHandler<ActionEvent> {
Button ok;
Label text;
Label message;
TextField TF;
public static void main(String[] args) {
launch(args);
}// Main.
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Gjett tallet spill");
ok = new Button("OK");
ok.setOnAction(this);
ok.setPrefSize(100,20);
text = new Label("Guess a number between 1 and 1000: ");
TF = new TextField();
message = new Label("");
GridPane gp = new GridPane();
gp.add(text,1,1);
gp.add(TF,3,1);
gp.add(message,2,2);
gp.add(ok,2,3);
Scene scene = new Scene(gp,600,150);
primaryStage.setScene(scene);
primaryStage.show();
}
@Override
public void handle(ActionEvent event) {
int uGuessed;
int theNumber;
tallet = 1 + (int)(Math.random() * 1000);
uGuessed = Integer.parseInt(TF.getText());
while (uGuessed != theNumber){
if (uGuessed<theNumber){
message.setText("The number was too low. Try again!");
} else {
message.setText("The number was too high. Try again!");
}// if/else.
}// while.
message.setText("Congratulations! You guessed the roght number! :D");
}// ActionEvent.
}// Class.
你有什麼異常?請張貼 –
什麼是「tallet」?此外while循環根本沒有任何意義......你永遠不會改變循環體內條件的任何值。 – fabian
不會出現異常。它只是凍結.. – Je9