JavaFX实验——随机出题

编写程序,随机生成两个数,用户输入两个数的和,并进行评判。程序的初始界面如下:
JavaFX实验——随机出题_第1张图片
点击“获取题目”,随机生成两个100以内的int类型的数,界面如下:
JavaFX实验——随机出题_第2张图片
当用户输入一个正确的答案时,点击“确认答案”按钮,显示如下界面:
JavaFX实验——随机出题_第3张图片
当用户输入一个错误的答案时,点击“确认答案”按钮,显示如下界面:
JavaFX实验——随机出题_第4张图片
提示:

  1. 使用java.util.Random类的nextInt(int n)生成一个100以内的随机数。nextInt(int n) 的作用: 返回一个介于 0(包括)和指定值n(不包括)之间均匀分布的 int 值。
  2. Integer类的静态方法parseInt(String str),可以将字符串转换为int类型的整数。

代码如下:

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.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import java.util.Random;

public class Main extends Application {
    Button q = new Button("获取题目");
    TextField t1 = new TextField();
    Label sum = new Label("+");
    TextField t2 = new TextField();
    Label equal = new Label("=");
    TextField t3 = new TextField();
    Button a = new Button("确认答案");
    Text t = new Text();
    @Override
    public void start(Stage primaryStage) throws Exception{
        BorderPane root = new BorderPane();
        HBox h1 = new HBox();
        h1.getChildren().addAll(q, t1, sum, t2, equal, t3);
        h1.setAlignment(Pos.CENTER);
        h1.setPadding(new Insets(10));
        h1.setSpacing(10);
        HBox h2 = new HBox();
        h2.getChildren().addAll(a, t);
        h2.setAlignment(Pos.CENTER);
        h2.setPadding(new Insets(3));
        h2.setSpacing(3);
        root.setTop(h1);
        root.setBottom(h2);
        Random r = new Random();
        q.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent actionEvent) {
                String s1 = String.valueOf(r.nextInt(101));
                String s2 = String.valueOf(r.nextInt(101));
                t1.setText(s1);
                t2.setText(s2);
            }
        });
        a.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent actionEvent) {
                int res = Integer.parseInt(t1.getText()) + Integer.parseInt(t2.getText());
                if(Integer.parseInt(t3.getText()) == res){
                    t.setText("答案正确");
                }
                else
                    t.setText("答案错误");
            }
        });
        primaryStage.setTitle("Random Questions");
        primaryStage.setScene(new Scene(root, 700, 100));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

你可能感兴趣的:(JavaFX实验——随机出题)