Javafx编写学生管理系统程序
时间: 2023-08-10 13:02:24 浏览: 46
好的,以下是一个简单的基于JavaFX的学生管理系统程序示例:
首先,我们需要设计用户界面。在这个示例中,我们将使用一个表格视图来显示学生的信息,并且添加按钮来实现增加、修改和删除学生信息的功能。
```java
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class StudentManagementSystem extends Application {
private TableView<Student> tableView = new TableView<>();
private ObservableList<Student> students = FXCollections.observableArrayList(
new Student("001", "张三", "男", "计算机科学与技术"),
new Student("002", "李四", "女", "软件工程")
);
@Override
public void start(Stage primaryStage) throws Exception {
// 初始化表格视图
tableView.setEditable(true);
TableColumn<Student, String> idColumn = new TableColumn<>("学号");
idColumn.setCellValueFactory(new PropertyValueFactory<>("id"));
TableColumn<Student, String> nameColumn = new TableColumn<>("姓名");
nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
TableColumn<Student, String> genderColumn = new TableColumn<>("性别");
genderColumn.setCellValueFactory(new PropertyValueFactory<>("gender"));
TableColumn<Student, String> majorColumn = new TableColumn<>("专业");
majorColumn.setCellValueFactory(new PropertyValueFactory<>("major"));
tableView.getColumns().addAll(idColumn, nameColumn, genderColumn, majorColumn);
tableView.setItems(students);
// 添加按钮
Button addButton = new Button("添加");
addButton.setOnAction(event -> {
Student student = new Student();
boolean result = showStudentDialog(student, "添加学生信息");
if (result) {
students.add(student);
}
});
Button modifyButton = new Button("修改");
modifyButton.setOnAction(event -> {
Student student = tableView.getSelectionModel().getSelectedItem();
if (student != null) {
boolean result = showStudentDialog(student, "修改学生信息");
if (result) {
tableView.refresh();
}
}
});
Button deleteButton = new Button("删除");
deleteButton.setOnAction(event -> {
Student student = tableView.getSelectionModel().getSelectedItem();
if (student != null) {
students.remove(student);
}
});
// 添加布局
BorderPane borderPane = new BorderPane();
HBox buttonBox = new HBox(10, addButton, modifyButton, deleteButton);
borderPane.setTop(buttonBox);
borderPane.setCenter(tableView);
borderPane.setPadding(new Insets(10));
// 显示界面
Scene scene = new Scene(borderPane, 600, 400);
primaryStage.setScene(scene);
primaryStage.setTitle("学生管理系统");
primaryStage.show();
}
private boolean showStudentDialog(Student student, String title) {
// 创建对话框
Dialog<Student> dialog = new Dialog<>();
dialog.setTitle(title);
dialog.setHeaderText(null);
// 添加控件
Label idLabel = new Label("学号:");
TextField idField = new TextField(student.getId());
Label nameLabel = new Label("姓名:");
TextField nameField = new TextField(student.getName());
Label genderLabel = new Label("性别:");
ComboBox<String> genderComboBox = new ComboBox<>();
genderComboBox.getItems().addAll("男", "女");
genderComboBox.setValue(student.getGender());
Label majorLabel = new Label("专业:");
TextField majorField = new TextField(student.getMajor());
GridPane gridPane = new GridPane();
gridPane.setHgap(10);
gridPane.setVgap(10);
gridPane.add(idLabel, 0, 0);
gridPane.add(idField, 1, 0);
gridPane.add(nameLabel, 0, 1);
gridPane.add(nameField, 1, 1);
gridPane.add(genderLabel, 0, 2);
gridPane.add(genderComboBox, 1, 2);
gridPane.add(majorLabel, 0, 3);
gridPane.add(majorField, 1, 3);
dialog.getDialogPane().setContent(gridPane);
// 添加按钮
ButtonType okButtonType = new ButtonType("确定", ButtonBar.ButtonData.OK_DONE);
ButtonType cancelButtonType = new ButtonType("取消", ButtonBar.ButtonData.CANCEL_CLOSE);
dialog.getDialogPane().getButtonTypes().addAll(okButtonType, cancelButtonType);
// 处理结果
dialog.setResultConverter(buttonType -> {
if (buttonType == okButtonType) {
student.setId(idField.getText());
student.setName(nameField.getText());
student.setGender(genderComboBox.getValue());
student.setMajor(majorField.getText());
return student;
} else {
return null;
}
});
// 显示对话框
dialog.showAndWait();
return dialog.getResult() != null;
}
public static void main(String[] args) {
launch(args);
}
}
```
在这个示例中,我们定义了一个`Student`类来表示学生信息,包括学号、姓名、性别和专业。然后,我们创建了一个表格视图来显示学生的信息,并且添加了三个按钮来实现增加、修改和删除学生信息的功能。我们还使用`Dialog`对话框来实现学生信息的添加和修改。
当你运行这个程序时,你将看到一个简单的学生管理系统界面,你可以在表格视图中添加、修改和删除学生信息。这只是一个简单的示例,你可以根据自己的需求进一步扩展和完善这个程序。