java实训日志第七天

按性别统计人数窗口CountStudentsBySex:
package net.cl.student.gui;

import net.cl.student.service.StudentService;
import net.cl.student.service.impl.StudentServiceImpl;

import javax.swing.;
import javax.swing.border.TitledBorder;
import java.awt.
;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.print.PrinterException;
import java.util.Vector;

public class CountStudentBySexFrame extends JFrame {
private JPanel panel;
private JPanel pnlSouth;
private JPanel pnlCenter;

private JButton btnPrint;
private JButton btnExit;

private Vector rows;

private Vector<String> colHead;

private JTable table;

private JScrollPane scroller;

private StudentService studentService;

public CountStudentBySexFrame(String title){
    super(title);
    initGUI();

}

private void initGUI() {
    panel = (JPanel) getContentPane();
    pnlSouth = new JPanel();
    pnlCenter = new JPanel();

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


    btnPrint = new JButton("打印[P]");
    btnPrint.setMnemonic(KeyEvent.VK_P);
    btnExit = new JButton("退出[X]");
    btnExit.setMnemonic(KeyEvent.VK_X);

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

    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();
    // 获取按性别统计结果记录行集
    rows = studentService.findRowsBySex();
    // 设置表头
    colHead.add("性别");
    colHead.add("人数");

    // 创建表格(参数1:记录集;参数2:表头)
    table = new JTable(rows, colHead);
    scroller = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
            JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    pnlCenter.add(scroller, BorderLayout.CENTER);

    repaint(); // 重绘窗体

    if (rows.isEmpty()) {
        JOptionPane.showMessageDialog(this, "没有记录!", "错误提示", JOptionPane.WARNING_MESSAGE);
    }

    // 设置窗口大小
    setSize(300, 200);
    // 设置窗口不可调整大小
    setResizable(false);
    // 设置窗口屏幕居中
    setLocationRelativeTo(null);
    // 设置窗口标题
    setTitle("按性别统计学生人数");
    // 设置窗口可见
    setVisible(true);
    // 设置窗口默认关闭操作
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

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

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

/**
 * 主方法
 *
 * @param args
 */
public static void main(String[] args) {
    new CountStudentBySexFrame("");
}

}
运行程序,如下:
在这里插入图片描述
按班级统计人数窗口CountStudentsByClass:
package net.cl.student.gui;

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

import javax.swing.;
import javax.swing.border.TitledBorder;
import java.awt.
;
import java.awt.event.*;
import java.util.List;
import java.util.Vector;

public class DeleteStudentByClassFrame extends JFrame {

/**
 * 班级标签
 */
private JLabel lblInputClass;
/**
 * 班级文本框
 */
private JTextField txtClass;
/**
 * 面板
 */
private JPanel panel;
private JPanel pnlSouth;
private JPanel pnlCenter;
private JPanel pnlNorth;
/**
 * 按钮
 */
private JButton btnQuery;
private JButton btnBrowseAll;
private JButton btnDelete;
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 DeleteStudentByClassFrame(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();

    lblInputClass = new JLabel("输入班级:");
    txtClass = new JTextField(10);
    txtClass.setHorizontalAlignment(JTextField.CENTER);
    btnQuery = new JButton("查询[Q]");
    btnQuery.setMnemonic(KeyEvent.VK_Q);
    btnBrowseAll = new JButton("显示全部记录[A]");
    btnBrowseAll.setMnemonic(KeyEvent.VK_A);
    btnDelete = new JButton("删除查询的记录[D]");
    btnDelete.setEnabled(false);// 删除按钮不可用
    btnDelete.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(lblInputClass);
    pnlNorth.add(txtClass);
    pnlNorth.add(btnQuery);
    pnlNorth.add(btnBrowseAll);
    pnlSouth.setLayout(new FlowLayout(FlowLayout.RIGHT));
    pnlSouth.add(btnDelete);
    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();
        }
    });

    // 【删除】按钮单击事件
    btnDelete.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            if (!rows.isEmpty()) {
                long choice = JOptionPane.showConfirmDialog(null, "是否要删除记录?");
                if (choice == JOptionPane.OK_OPTION) {
                    // 获取待删班级
                    String clazz = txtClass.getText().trim();
                    // 按班级删除学生
                    int count = studentService.deleteStudentsByClass(clazz);
                    if (count > 0) {
                        JOptionPane
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值