用GUI Java写一个学生信息管理系统
时间: 2023-06-13 13:02:21 浏览: 175
基于 Java+MySQL 实现(GUI+Web)学生管理系统【100011065】
5星 · 资源好评率100%
好的,以下是一个简单的学生信息管理系统的GUI Java实现。
首先,我们需要创建一个主窗口,该窗口包含菜单栏和一个显示学生信息的表格。我们可以使用Swing库来创建GUI组件。
```java
import javax.swing.*;
import java.awt.*;
public class StudentManagementSystem extends JFrame {
private JTable table;
public StudentManagementSystem() {
setTitle("学生信息管理系统");
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
// 创建菜单栏
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("文件");
JMenuItem openItem = new JMenuItem("打开");
JMenuItem saveItem = new JMenuItem("保存");
JMenuItem exitItem = new JMenuItem("退出");
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(exitItem);
menuBar.add(fileMenu);
setJMenuBar(menuBar);
// 创建表格
table = new JTable();
table.setModel(new StudentTableModel());
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane, BorderLayout.CENTER);
}
public static void main(String[] args) {
StudentManagementSystem system = new StudentManagementSystem();
system.setVisible(true);
}
}
```
在上面的代码中,我们创建了一个名为StudentManagementSystem的类,它继承自JFrame,表示我们创建的窗口。我们在构造函数中设置了窗口的标题、大小、关闭操作和位置。然后,我们创建了一个菜单栏,其中包含文件菜单和三个菜单项:打开、保存和退出。最后,我们创建了一个JTable来显示学生信息,使用了自定义的StudentTableModel类来定义表格数据模型。我们将表格添加到一个JScrollPane中,以便在窗口大小调整时可以滚动表格。
接下来,我们需要定义StudentTableModel类来提供表格数据模型。该类继承自AbstractTableModel,并重写了getRowCount、getColumnCount、getValueAt和getColumnName方法来提供正确的数据。
```java
import javax.swing.table.AbstractTableModel;
import java.util.ArrayList;
import java.util.List;
public class StudentTableModel extends AbstractTableModel {
private List<Student> data;
public StudentTableModel() {
data = new ArrayList<>();
data.add(new Student("001", "张三", "男", 20, "计算机科学"));
data.add(new Student("002", "李四", "女", 21, "软件工程"));
data.add(new Student("003", "王五", "男", 22, "信息安全"));
}
@Override
public int getRowCount() {
return data.size();
}
@Override
public int getColumnCount() {
return 5;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Student student = data.get(rowIndex);
switch (columnIndex) {
case 0:
return student.getId();
case 1:
return student.getName();
case 2:
return student.getGender();
case 3:
return student.getAge();
case 4:
return student.getMajor();
default:
return null;
}
}
@Override
public String getColumnName(int column) {
switch (column) {
case 0:
return "学号";
case 1:
return "姓名";
case 2:
return "性别";
case 3:
return "年龄";
case 4:
return "专业";
default:
return null;
}
}
}
```
在上面的代码中,我们定义了一个名为StudentTableModel的类,它继承自AbstractTableModel。我们在构造函数中创建了一些学生数据,然后在getRowCount方法中返回数据行数,getColumnCount方法中返回列数,getValueAt方法中返回指定单元格的值,getColumnName方法中返回列名。
最后,我们还需要定义一个Student类来表示学生信息。
```java
public class Student {
private String id;
private String name;
private String gender;
private int age;
private String major;
public Student(String id, String name, String gender, int age, String major) {
this.id = id;
this.name = name;
this.gender = gender;
this.age = age;
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 String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
}
```
现在,我们已经实现了一个简单的学生信息管理系统的GUI Java版本。运行程序,你将会看到一个带有菜单栏和表格的窗口,表格中显示了预定义的学生信息。你可以添加、编辑或删除学生信息,然后保存到文件中。
当然,这只是一个简单的实现,你可以根据需要进行扩展和优化。
阅读全文