学生成绩管理系统 Java swing
时间: 2023-12-22 20:30:04 浏览: 142
学生成绩管理系统可以使用Java Swing来实现用户界面。下面是一个简单的示例:
```java
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class GradeManagementSystem extends JFrame {
private JTable table;
private GradeTableModel tableModel;
public GradeManagementSystem() {
setTitle("学生成绩管理系统");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 400);
tableModel = new GradeTableModel();
table = new JTable(tableModel);
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane, BorderLayout.CENTER);
}
private class GradeTableModel extends AbstractTableModel {
private List<Map<String, Object>> data;
private String[] columnNames = {"学号", "姓名", "成绩"};
public GradeTableModel() {
data = getAllStudentsInfo();
}
@Override
public int getRowCount() {
return data.size();
}
@Override
public int getColumnCount() {
return columnNames.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Map<String, Object> student = data.get(rowIndex);
switch (columnIndex) {
case 0:
return student.get("学号"); case 1:
return student.get("姓名");
case 2:
return student.get("成绩");
default:
return null; }
}
@Override
public String getColumnName(int column) {
return columnNames[column];
}
}
private List<Map<String, Object>> getAllStudentsInfo() {
// 这里可以根据实际情况从数据库或其他数据源获取学生信息
List<Map<String, Object>> list = new ArrayList<>();
// 假设有三个学生的信息
Map<String, Object> student1 = Map.of("学号", "001", "姓名", "张三", "成绩", 90);
Map<String, Object> student2 = Map.of("学号", "002", "姓名", "李四", "成绩", 85);
Map<String, Object> student3 = Map.of("学号", "003", "姓名", "王五", "成绩", 95);
list.add(student1);
list.add(student2);
list.add(student3);
return list;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
GradeManagementSystem system = new GradeManagementSystem();
system.setVisible(true);
});
}
}
```
这个示例中,我们创建了一个`GradeManagementSystem`类,继承自`JFrame`,用于显示学生成绩管理系统的主窗口。在构造方法中,我们创建了一个`GradeTableModel`对象作为表格的数据模型,并将其设置给`JTable`。`GradeTableModel`继承自`AbstractTableModel`,实现了表格的数据和列名的获取方法。`getAllStudentsInfo`方法用于获取学生信息,这里只是简单地返回了一个固定的学生信息列表。
你可以根据实际需求修改代码,例如从数据库中获取学生信息,添加编辑功能等。
阅读全文