Java+IO+Swing实现学生信息管理系统
学生信息管理系统是一款常见的管理工具,它可以帮助学校、老师或管理员轻松地管理学生的信息。本篇攻略将会使用Java语言结合IO和Swing技术来实现学生信息管理系统。
1. 项目搭建
首先打开你喜欢的IDE,选择新建Java项目,并添加Swing库。
然后新建一个Main类,它将作为程序的入口点。接下来,创建一个Swing窗体并设置它的样式和布局,这个窗体就是我们的主页面。
public class Main extends JFrame {
private JPanel contentPane;
private JTextField textFieldName;
private JTextField textFieldId;
private JTextField textFieldAge;
private JButton btnSave;
private JButton btnLoad;
public Main() {
setTitle("学生信息管理系统");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNewLabel = new JLabel("姓名");
lblNewLabel.setBounds(38, 48, 54, 15);
contentPane.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("学号");
lblNewLabel_1.setBounds(38, 90, 54, 15);
contentPane.add(lblNewLabel_1);
JLabel lblNewLabel_2 = new JLabel("年龄");
lblNewLabel_2.setBounds(38, 131, 54, 15);
contentPane.add(lblNewLabel_2);
textFieldName = new JTextField();
textFieldName.setBounds(123, 45, 185, 21);
contentPane.add(textFieldName);
textFieldName.setColumns(10);
textFieldId = new JTextField();
textFieldId.setBounds(123, 87, 185, 21);
contentPane.add(textFieldId);
textFieldId.setColumns(10);
textFieldAge = new JTextField();
textFieldAge.setBounds(123, 128, 185, 21);
contentPane.add(textFieldAge);
textFieldAge.setColumns(10);
btnSave = new JButton("保存");
btnSave.setBounds(38, 182, 93, 23);
contentPane.add(btnSave);
btnLoad = new JButton("读取");
btnLoad.setBounds(215, 182, 93, 23);
contentPane.add(btnLoad);
}
public static void main(String[] args) {
Main frame = new Main();
frame.setVisible(true);
}
}
你会发现,我们创建了一个JFrame类型的对象,并在构造方法里设置了它的一些属性,如标题、大小、布局等。同时,我们也设置了一个form表单,并添加了一些标签和输入框,以及保存和读取按钮。
接下来,我们需要添加一些事件,使这些按钮可以响应用户的操作。同时,也需要为保存和读取按钮添加一些实际内容的逻辑。
2. 添加事件和逻辑
在Main类中,添加如下方法:
private void initEvent() {
btnSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveFile(textFieldName.getText(), textFieldId.getText(), textFieldAge.getText());
}
});
btnLoad.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String[] strs = readFile();
textFieldName.setText(strs[0]);
textFieldId.setText(strs[1]);
textFieldAge.setText(strs[2]);
}
});
}
private void saveFile(String name, String id, String age) {
File file = new File("data.txt");
String data = name + "," + id + "," + age;
try {
FileOutputStream fos = new FileOutputStream(file);
fos.write(data.getBytes());
fos.flush();
fos.close();
JOptionPane.showMessageDialog(null, "保存成功");
} catch (IOException e) {
e.printStackTrace();
}
}
private String[] readFile() {
File file = new File("data.txt");
String data = "";
try {
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
data = new String(buffer);
} catch (IOException e) {
e.printStackTrace();
}
return data.split(",");
}
我们首先在initEvent方法中,为保存和读取按钮添加了ActionListener。这个监听器会在用户点击按钮时执行所提供的事件。
接着,saveFile方法会将表单中填写的信息保存到一个名为data.txt的文本文件中。这里我们使用了FileOutputStream类来操作文件输出流。
而readFile方法则是从文件中读取保存的信息。这里我们使用了FileInputStream类来操作文件输入流,将数据读取到内存中后通过split方法进行拆分,最终返回一个字符串数组。
3. 测试
现在项目已经完成,可以运行程序并测试它的功能。在Main类中,添加如下代码:
public Main() {
// ...
initEvent();
String[] strs = readFile();
textFieldName.setText(strs[0]);
textFieldId.setText(strs[1]);
textFieldAge.setText(strs[2]);
}
这里我们在程序启动后直接读取文件,并将文件中已保存的信息显示到表单上。
结合上述操作,我们可以使用Java语言结合IO和Swing编写一个简单的学生信息管理系统。在实际开发中,可以添加更多的功能和模块,以满足实际需要。
例子1:Java实现学生信息管理系统
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java+io+swing实现学生信息管理系统 - Python技术站