JAVA实训项目第六次日志

这篇日志详细记录了一次Java实训项目的过程,重点介绍了如何使用Java开发【学生信息管理系统】,涵盖登录注册、系统设置、数据操作、查询统计等功能。通过实现ID、姓名、班级、系部查询及人数统计,学生掌握了面向对象编程、GUI设计和数据库应用等技能。
摘要由CSDN通过智能技术生成

实训目的:让学生综合运用J2SE有关知识开发【学生信息管理系统】。主要涉及程序控制结构、面向对象编程、图形用户界面、Java数据库应用、MySQL数据库这几个方面的内容。通过本项目的开发,让学生了解系统开发的一般流程,初步了解MVC模式与单元测试,巩固所学的Java理论知识,提高Java数据库应用编程的基本技能。

项目说明:本实训案例教学,利用Java SE基本知识是开发【学生信息管理系统】。本系统包括登录注册、系统设置(设置学校信息、设置状态栏信息、修改用户密码)、数据操作(增加学生记录、编辑学生记录、删除学生记录、浏览学生记录)、查询学生(按学号查询、按姓名查询、按班级查询、按系部查询)、人数统计(按性别统计人数、按班级统计人数、按系部统计人数)等功能。
创建FindStudentByIdFrame类,通过ID查询学生记录
编写主方法
在这里插入图片描述
声明变量
在这里插入图片描述
在这里插入图片描述
创建服务对象及构造方法
在这里插入图片描述
<Alt+Enter> 获取private void intiGUI() {},实现初始化界面
在这里插入图片描述
添加组件
在这里插入图片描述
创建标题边框对象和学生服务对象,并获取全部学生列表,填充表格数据
在这里插入图片描述
设置窗口属性
在这里插入图片描述
编写查询方法,填充表格方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行结果如下:
在这里插入图片描述
创建FindStudentByNameFrame类,按照姓名查找学生
代码如下:
package net.qf.student.gui;

/**

  • 包名:net.qf.student.gui
  • 类名:FindStudentByNameFrame
  • 描述:按姓名查找学生
  • 作者:秦芳
  • 日期:2019年6月22日
    */

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.print.PrinterException;
import java.util.List;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;

import net.qf.student.bean.Student;
import net.qf.student.service.StudentService;
import net.qf.student.service.impl.StudentServiceImpl;

public class FindStudentByNameFrame extends JFrame {
/**
* 姓名标签
/
private JLabel lblInputName;
/
*
* 姓名文本框
*/
private JTextField txtName;

/**
 * 面板
 */
private JPanel panel;
private JPanel pnlSouth;
private JPanel pnlCenter;
private JPanel pnlNorth;

/**
 * 按钮
 */
private JButton btnQuery;
private JButton btnBrowseAll;
private JButton btnPrint;
private JButton btnExit;

/**
 * 记录行集
 */
private Vector rows;
/**
 * 表格列标题
 */
private Vector<String> colHead;
/**
 * 表格
 */
private JTable table;
/**
 * 滚动面板
 */
private JScrollPane scroller;

/**
 * 当前记录行号
 */
private int currentRow;
/**
 * 学生列表
 */
private List<Student> students;
/**
 * 创建学生服务对象
 */
private StudentService studentService;

/**
 * 构造方法
 *
 * @param title
 */
public FindStudentByNameFrame(String title) {
    super(title);
    intiGUI();
}

/**
 * 初始化用户界面
 */
private void intiGUI() {
    // 创建对象
    panel = (JPanel) getContentPane();
    pnlNorth = new JPanel();
    pnlCenter = new JPanel();
    pnlSouth = new JPanel();

    rows = new Vector();
    colHead = new Vector();

    lblInputName = new JLabel("输入姓名:");
    txtName = new JTextField(10);
    txtName.setHorizontalAlignment(JTextField.CENTER);
    btnQuery = new JButton("查询[Q]");
    btnQuery.setMnemonic(KeyEvent.VK_Q);
    btnBrowseAll = new JButton("显示全部记录[A]");
    btnBrowseAll.setMnemonic(KeyEvent.VK_A);
    btnPrint = new JButton("打印[P]");
    btnPrint.setMnemonic(KeyEvent.VK_D);
    btnExit = new JButton("退出[X]");
    btnExit.setMnemonic(KeyEvent.VK_X);

    // 添加组件
    panel.add(pnlSouth, BorderLayout.SOUTH);
    panel.add(pnlCenter, BorderLayout.CENTER);
    panel.add(pnlNorth, BorderLayout.NORTH);

    pnlNorth.add(lblInputName);
    pnlNorth.add(txtName);
    pnlNorth.add(btnQuery);
    pnlNorth.add(btnBrowseAll);
    pnlSouth.setLayout(new FlowLayout(FlowLayout.RIGHT));
    pnlSouth.add(btnPrint);
    pnlSouth.add(btnExit);
    pnlCenter.setLayout(new BorderLayout());

    // 创建标题边框对象
    TitledBorder tb = new TitledBorder("查询结果");
    pnlCenter.setBorder(tb);

    // 创建学生服务对象
    studentService = new StudentServiceImpl();
    // 获取全部学生列表
    students = studentService.findAllStudents();
    // 填充表格数据
    fillTableData();

    // 设置窗口大小
    setSize(600, 350);
    // 设置窗口不可调整大小
    setResizable(false);
    // 设置窗口屏幕居中
    setLocationRelativeTo(null);
    // 设置窗口标题
    setTitle("按姓名查询学生记录");
    // 设置窗口可见
    setVisible(true);
    // 设置窗口默认关闭操作
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // 【退出】按钮单击事件
    btnExit.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            dispose();
        }
    });

    // 【打印】按钮单击事件
    btnPrint.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            try {
                table.print();
            } catch (PrinterException e1) {
                e1.printStackTrace();
            }
        }
    });

    // 【查询】按钮单击事件
    btnQuery.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            doQuery();
        }
    });

    // 【显示全部记录】按钮单击事件
    btnBrowseAll.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            // 获取全部学生记录
            students = studentService.findAllStudents();
            // 填充表格数据
            fillTableData();
        }
    });

    // 文本框按键事件
    txtName.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值