如何讓這段代碼用JavaFX
时间: 2024-03-18 09:42:26 浏览: 7
要将这段代码转换为 JavaFX,你需要使用 JavaFX 的界面组件代替控制台输入输出。
JavaFX 提供了很多 UI 组件,比如 TextField、Label、Button 等等,你可以使用这些组件来构建一个图形用户界面,让用户能够直观地输入和查看数据。
下面是一个简单的 JavaFX 界面示例代码,可以让用户输入学生信息并显示在界面上:
```java
import javafx.application.Application;
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 StudentDataInput extends Application {
private int numOfStudents;
private TextField[] nameFields;
private TextField[] gradeFields;
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("学生成绩录入系统");
// 创建一个网格布局
GridPane gridPane = new GridPane();
gridPane.setHgap(10);
gridPane.setVgap(10);
// 创建用于输入学生数量的标签和文本框
Label numOfStudentsLabel = new Label("请输入学生数量:");
TextField numOfStudentsField = new TextField();
gridPane.add(numOfStudentsLabel, 0, 0);
gridPane.add(numOfStudentsField, 1, 0);
// 创建提交按钮
Button submitButton = new Button("提交");
submitButton.setOnAction(event -> {
// 获取学生数量
numOfStudents = Integer.parseInt(numOfStudentsField.getText());
// 创建用于输入学生信息的文本框数组
nameFields = new TextField[numOfStudents];
gradeFields = new TextField[numOfStudents];
// 根据学生数量创建用于输入学生信息的标签、文本框和提交按钮
for (int i = 0; i < numOfStudents; i++) {
Label nameLabel = new Label("请输入第" + (i + 1) + "个学生的姓名:");
TextField nameField = new TextField();
Label gradeLabel = new Label("请输入第" + (i + 1) + "个学生的成绩:");
TextField gradeField = new TextField();
gridPane.add(nameLabel, 0, i + 1);
gridPane.add(nameField, 1, i + 1);
gridPane.add(gradeLabel, 2, i + 1);
gridPane.add(gradeField, 3, i + 1);
// 将文本框添加到数组中
nameFields[i] = nameField;
gradeFields[i] = gradeField;
}
// 创建显示学生信息的标签
Label resultLabel = new Label();
gridPane.add(resultLabel, 0, numOfStudents + 1);
// 创建提交按钮并添加事件处理程序
Button submitButton2 = new Button("提交");
submitButton2.setOnAction(event2 -> {
// 显示学生信息
String result = "";
for (int i = 0; i < numOfStudents; i++) {
result += nameFields[i].getText() + "的成绩是" + gradeFields[i].getText() + "\n";
}
resultLabel.setText(result);
});
gridPane.add(submitButton2, 0, numOfStudents + 2);
});
gridPane.add(submitButton, 2, 0);
Scene scene = new Scene(gridPane, 600, 400);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
这段代码使用 JavaFX 创建了一个简单的界面,可以让用户输入学生的姓名和成绩,并将其显示在界面上。具体实现方式是使用 GridPane 网格布局,将各个 UI 组件放置在不同的行和列中,并添加事件处理程序来响应用户的操作。