javafxx实现学生信息管理系统
时间: 2024-04-03 22:36:12 浏览: 7
JavaFX是Java平台的一个GUI库,可以用来构建跨平台的桌面应用程序。学生信息管理系统是一个常见的应用程序,可以使用JavaFX来实现。
下面是一个简单的JavaFX学生信息管理系统的实现示例,包括添加学生信息、修改学生信息、删除学生信息和显示学生信息等功能:
```java
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class StudentManagementSystem extends Application {
private ObservableList<Student> students = FXCollections.observableArrayList();
private TextField idField = new TextField();
private TextField nameField = new TextField();
private TextField ageField = new TextField();
private ComboBox<String> genderCombo = new ComboBox<>();
private TextField majorField = new TextField();
private ListView<Student> studentListView = new ListView<>();
private Button addButton = new Button("添加");
private Button editButton = new Button("修改");
private Button deleteButton = new Button("删除");
@Override
public void start(Stage primaryStage) {
GridPane inputPane = new GridPane();
inputPane.setAlignment(Pos.CENTER);
inputPane.setHgap(10);
inputPane.setVgap(10);
inputPane.setPadding(new Insets(10));
inputPane.add(new Label("学号"), 0, 0);
inputPane.add(idField, 1, 0);
inputPane.add(new Label("姓名"), 0, 1);
inputPane.add(nameField, 1, 1);
inputPane.add(new Label("年龄"), 0, 2);
inputPane.add(ageField, 1, 2);
inputPane.add(new Label("性别"), 0, 3);
genderCombo.getItems().addAll("男", "女");
inputPane.add(genderCombo, 1, 3);
inputPane.add(new Label("专业"), 0, 4);
inputPane.add(majorField, 1, 4);
VBox leftPane = new VBox();
leftPane.setSpacing(10);
leftPane.setPadding(new Insets(10));
leftPane.getChildren().addAll(inputPane, addButton, editButton, deleteButton);
HBox rightPane = new HBox();
rightPane.getChildren().add(studentListView);
HBox mainPane = new HBox();
mainPane.setSpacing(10);
mainPane.setPadding(new Insets(10));
mainPane.getChildren().addAll(leftPane, rightPane);
Scene scene = new Scene(mainPane, 600, 400);
primaryStage.setTitle("学生信息管理系统");
primaryStage.setScene(scene);
primaryStage.show();
addButton.setOnAction(event -> addStudent());
editButton.setOnAction(event -> editStudent());
deleteButton.setOnAction(event -> deleteStudent());
studentListView.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> showStudent(newValue));
}
private void addStudent() {
String id = idField.getText();
String name = nameField.getText();
int age = Integer.parseInt(ageField.getText());
String gender = genderCombo.getValue();
String major = majorField.getText();
Student student = new Student(id, name, age, gender, major);
students.add(student);
clearInputFields();
}
private void editStudent() {
Student student = studentListView.getSelectionModel().getSelectedItem();
if (student == null) {
return;
}
String id = idField.getText();
String name = nameField.getText();
int age = Integer.parseInt(ageField.getText());
String gender = genderCombo.getValue();
String major = majorField.getText();
student.setId(id);
student.setName(name);
student.setAge(age);
student.setGender(gender);
student.setMajor(major);
clearInputFields();
}
private void deleteStudent() {
Student student = studentListView.getSelectionModel().getSelectedItem();
if (student != null) {
students.remove(student);
}
}
private void showStudent(Student student) {
if (student != null) {
idField.setText(student.getId());
nameField.setText(student.getName());
ageField.setText(String.valueOf(student.getAge()));
genderCombo.setValue(student.getGender());
majorField.setText(student.getMajor());
}
}
private void clearInputFields() {
idField.setText("");
nameField.setText("");
ageField.setText("");
genderCombo.setValue("");
majorField.setText("");
}
public static void main(String[] args) {
launch(args);
}
}
class Student {
private String id;
private String name;
private int age;
private String gender;
private String major;
public Student(String id, String name, int age, String gender, String major) {
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
this.major = major;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
@Override
public String toString() {
return name + " (" + id + ")";
}
}
```
在这个实现中,我们使用了JavaFX的ListView、TextField、ComboBox、Button等控件来实现学生信息管理系统的添加、修改、删除和显示等功能。同时,我们还使用了ObservableList来存储学生信息,这样当学生信息发生变化时,界面上的学生列表会自动更新。