Swing图书管理系统(文本、数据库或集合存储数据)实现方式
前言
在设计和实现学生信息管理系统时,采用Java Swing技术构建用户界面是适应现代化管理需求的有力手段。Swing作为Java标准库的一部分,提供了丰富的GUI组件和布局管理器,使得开发者能够创建出灵活、可定制且跨平台运行的应用程序。通过使用Swing开发的学生信息管理系统,不仅能够实现高效的数据录入、维护与检索功能,而且其图形化的操作方式极大地简化了用户操作流程,提高了工作效率。
该系统应包括以下核心特点和功能:
基础数据维护:系统应支持对学生基本信息(如姓名、学号、性别、专业、成绩等)进行添加、修改和删除操作,确保数据的准确性和实时性。
学生信息列表展示:以表格形式直观显示学生信息,支持分页浏览、排序等功能。
查询功能:提供快捷的模糊查找功能,允许用户通过关键词搜索学生信息。
安全性保障:利用数据库访问控制和密码加密技术,提高系统的保密性和数据安全。
易用性设计:界面简洁明了,遵循良好的人机交互原则,降低学习成本,提升用户体验。
计算机化的学生信息管理系统替代传统的手工管理模式,有效解决了传统方式效率低下、数据安全性低的问题,同时能够为学校管理者提供及时、准确的数据支持,便于他们进行决策分析,进一步推动教育单位信息化进程的发展,符合现代教育管理科学化、规范化的要求。
用户登录注册:
用户输入账号密码进行登录、成功登录查看首页和学生信息。
实现相关逻辑代码
public class LoginFrame {
public static JFrame lgframe = new JFrame("学生管理系统——用户登录");
public static ImagePanel lgpan1 = new ImagePanel(new ImageIcon("tu" + File.separator + "1.jpg").getImage());
public static ImagePanel lgpan2 = new ImagePanel(new ImageIcon("tu" + File.separator + "2.jpg").getImage());
public static JLabel lglab3 = new JLabel("用户名:");
public static JLabel lglab4 = new JLabel("密 码:");
public static Font lgfnt1 = new Font("宋体", Font.BOLD, 20);
public static Font lgfnt2 = new Font("宋体", Font.BOLD, 22);
public static Font lgfnt3 = new Font("宋体", Font.ITALIC, 18);
public static JTextField lgjtf = new JTextField("");// 用户账号
public static JPasswordField lgjpwf = new JPasswordField("");// 用户密码
public static JButton lgbut1 = new JButton("登录");
public static JLabel lab = new JLabel();
public LoginFrame() {
// 设置容器的布局方式
lgframe.setLayout(null);
lgpan1.setLayout(new GridLayout(1, 1, 0, 0));
lgpan2.setLayout(null);
// 设置相关控件的大小
Dimension ds = Toolkit.getDefaultToolkit().getScreenSize();
lgpan1.setBounds(0, 0, 540, 230);
lgpan2.setBounds(0, 230, 540, 185);
lglab3.setBounds(98, 15, 90, 40);
lglab4.setBounds(98, 55, 90, 40);
lgjtf.setBounds(200, 15, 200, 40);
lgjpwf.setBounds(200, 55, 200, 40);
lgbut1.setBounds(195, 120, 150, 40);// 540-150=390
// 设置控件的包括背景色在内的相关属性
lgpan1.setBackground(Color.orange);
lgpan2.setBackground(Color.green);
lglab3.setFont(lgfnt1);
lglab4.setFont(lgfnt1);
lglab3.setForeground(Color.black);
lglab4.setForeground(Color.black);
lgjtf.setFont(lgfnt3);//
lgjpwf.setFont(lgfnt2);
lgbut1.setFont(lgfnt2);
lgjpwf.setEchoChar('*');
// 将控件添加进相应容器
lgframe.add(lgpan1);
lgframe.add(lgpan2);
lgpan1.add(lab);
lgpan2.add(lglab3);
lgpan2.add(lglab4);
lgpan2.add(lgjtf);
lgpan2.add(lgjpwf);
lgpan2.add(lgbut1);
// 事件响应及处理
lgbut1.addActionListener(new ActionListener() {// 用户点击登陆按钮后系统进行用户验证
public void actionPerformed(ActionEvent e) {
if (lgjtf.getText().equals("") || lgjtf.getText().equals("请输入用户账号")) {
JOptionPane.showMessageDialog(null, "请输入用户账号!", "系统提示", JOptionPane.WARNING_MESSAGE);
} else if ((!lgjtf.getText().equals("")) && (!lgjtf.getText().equals("请输入用户账号"))
&& (String.valueOf(lgjpwf.getPassword()).equals(""))) {
JOptionPane.showMessageDialog(null, "请输入用户密码!", "系统提示", JOptionPane.WARNING_MESSAGE);
} else {
login();
}
}
});
lgjtf.getDocument().addDocumentListener(new DocumentListener() { // JTextField事件监听与处理
public void removeUpdate(DocumentEvent e) {
}
public void insertUpdate(DocumentEvent e) {
lgjtf.setFont(lgfnt2);
}
public void changedUpdate(DocumentEvent e) {
}
});
lgjtf.addFocusListener(new FocusListener() {// 焦点事件
public void focusLost(FocusEvent e) {
if (lgjtf.getText().equals("") || lgjtf.getText().equals("请输入用户账号")) {
lgjtf.setText("请输入用户账号");
lgjtf.setFont(lgfnt3);
} else {
;
}
}
public void focusGained(FocusEvent e) {
}
});
lgjtf.addMouseListener(new MouseListener() {
public void mouseReleased(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
if (lgjtf.getText().equals("") || lgjtf.getText().equals("请输入用户账号")) {
lgjtf.setText("");
} else {
;
}
}
});
lgjpwf.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
// TODO 自动生成的方法存根
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == 10) {// *********************************************************
if (lgjtf.getText().equals("") || lgjtf.getText().equals("请输入用户账号")) {
JOptionPane.showMessageDialog(null, "请输入用户账号!", "系统提示", JOptionPane.WARNING_MESSAGE);
} else if ((!lgjtf.getText().equals("")) && (!lgjtf.getText().equals("请输入用户账号"))
&& (String.valueOf(lgjpwf.getPassword()).equals(""))) {
JOptionPane.showMessageDialog(null, "请输入密码!", "系统提示", JOptionPane.WARNING_MESSAGE);
} else {
login();
}
}
}
public void keyReleased(KeyEvent e) {
}
});
lgjpwf.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
lgjpwf.setText("");
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
});
lgframe.setSize(545, 450);
lgframe.setLocation((int) ((ds.getWidth() - 545) / 2), (int) ((ds.getHeight() - 450) / 2));
lgframe.setResizable(false);
lgframe.setDefaultCloseOperation(lgframe.DISPOSE_ON_CLOSE);
lgframe.setVisible(true);
}
public void login() {// 连接数据库,进行用户验证。
String username = lgjtf.getText();
String password = String.valueOf(lgjpwf.getPassword());
// boolean loginRes = loginDao.login(username, password);
if ("admin".equals(username) && "admin".equals(password)) {
lgframe.dispose();
try {
new MainFrame();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
JOptionPane.showMessageDialog(null, "用户名密码不匹配!", "系统提示", JOptionPane.WARNING_MESSAGE);
}
}
}
增加删除修改
相关逻辑
public void delete(int id) {
boolean isDeleted = false;
for (int i = students.size() - 1; i >= 0; i--) {
if (students.get(i).getId().equals(id)) {
students.remove(i);
isDeleted = true;
break;
}
}
}
/**
* 查询全部
*
* @param
* @return
*/
public List<Student> queryAll(String keyword){
readFile02();
List<Student> stuList = new ArrayList<>();
if (!"".equals(keyword)) {
for (Student student : students) {
if (student.getCode().equals(keyword) || student.getName().equals(keyword) || student.getDormitory().equals(keyword)) {
stuList.add(student);
}
}
return stuList;
}
return students;
}
public static void readFile02() {
try {
FileInputStream fis=new FileInputStream("E:/example.txt");
InputStreamReader isr=new InputStreamReader(fis, "GBK");
BufferedReader br = new BufferedReader(isr);
//简写如下
//BufferedReader br = new BufferedReader(new InputStreamReader(
// new FileInputStream("E:/phsftp/evdokey/evdokey_201103221556.txt"), "UTF-8"));
String line="";
String[] arrs=null;
students.clear();
while ((line=br.readLine())!=null) {
arrs=line.split(",");
Student student = new Student(Integer.valueOf(arrs[0]),arrs[1],arrs[2],arrs[3],arrs[4],arrs[5],arrs[6],arrs[7],arrs[8],arrs[9],arrs[10]);
System.out.println(arrs[0] + " : " + arrs[1] + " : " + arrs[2]);
students.add(student);
}
br.close();
isr.close();
fis.close();
}catch (Exception e){
e.printStackTrace();
}
}
总结:
在最近对Java面向对象程序设计和Swing GUI框架的学习实践中,java奥斯卡通过开发学生信息管理系统项目获得了深刻体会。他从最初的接触与认识到逐渐熟练掌握,并最终能够独立运用这些技术进行功能实现与测试。在这一过程中,他充分认识到Java语言在软件开发中的重要性,尤其是在系统中利用了Java的面向对象特性——抽象、封装、继承和多态,这不仅简化了代码组织结构,还显著提升了代码复用性和可扩展性,从而提高了整体开发效率。
接毕设
加q:2842869408