java6.23学习总结

(7)按班级删除学生窗口DeleteStudentsByClass
代码如下:

package net.qt.student.gui;

import net.qt.student.bean.Student;
import net.qt.student.service.StudentService;
import net.qt.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;

/**
 * 功能:按班级删除学生记录
 * 作者:谯婷
 * 日期:2019.6.23
 */
public class DeleteStudentsByClassFrame extends JFrame {
    /**
     * 班级标签
     */
    private JLabel lblInputClass;
    /**
     * 班级文本框
     */
    private JTextField txtClass;
    /**
     * 面板
     */
    private JPanel panel;
    private JPanel pnlSouth;
    private JPanel pnlCenter;
    private JPanel pnlNouth;
    /**
     * 按钮
     */
    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
     */
    private DeleteStudentsByClassFrame(String title){
        super(title);
        initGUI();
    }
    private void initGUI(){
        //创建组件
        panel = (JPanel)getContentPane();
        pnlNouth = 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( pnlNouth, BorderLayout.NORTH );

        pnlNouth.add( lblInputClass );
        pnlNouth.add( txtClass );
        pnlNouth.add( btnQuery );
        pnlNouth.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 );
        //设置窗口默认关闭操作
        setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        //设置窗口可见性
        setVisible( true );

        //【退出】按钮单击事件
        btnExit.addActionListener( new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                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.deleteStudentByClass( clazz );
                        if(count > 0){
                            JOptionPane.showMessageDialog( null,"记录删除成功!","提示",JOptionPane.INFORMATION_MESSAGE );
                            //重新获取全部学生列表
                            students = studentService.findAllStudents();
                            //清空待删班级文本框
                            txtClass.setText( "" );
                            //填充数据
                            fillTableData();
                            //删除按钮不可用
                            btnDelete.setEnabled(false);
                        }else {
                            JOptionPane.showMessageDialog( null,"记录删除失败!","警告",JOptionPane.WARNING_MESSAGE);
                        }
                    }
                }
            }
        } );

        //【查询】按钮单击事件
        btnQuery.addActionListener( new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                doQuery();
            }
        } );
        //【显示全部记录】按钮单击事件
        btnBrowseAll.addActionListener( new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //获取全部学生记录
                students = studentService.findAllStudents();
                //填充数据表格
                fillTableData();
                //删除按钮不可用
                btnDelete.setEnabled( false );
            }
        } );
        //【班级】文本框按键事件
        txtClass.addKeyListener( new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                if(e.getKeyCode() == KeyEvent.VK_ENTER){
                    doQuery();
                }
            }
        } );
        //表格单击事件
        table.addMouseListener( new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                //获取当前行的行数
                int row = table.rowAtPoint( e.getPoint() );
                //选中鼠标单击的行
                table.setRowSelectionInterval( row,row );
                //设置文本框内容
                txtClass.setText( table.getValueAt( row,5 ).toString() );
            }
        } );
    }
    /**
     * 查询方法
     */
    private void doQuery(){
        //获取查询班级
        String clazz = txtClass.getText().trim();
        if(!clazz.equals("")){
            students = studentService.findStudentsByClass( clazz );
            if(students.size() > 0){
                //让删除按钮可用
                btnDelete.setEnabled( true );
            }
            //填充表格
            fillTableData();
        }else{
            JOptionPane.showMessageDialog( null,"请输入待查班级!","警告",JOptionPane.WARNING_MESSAGE );
            txtClass.requestFocus();
        }
    }
    /**
     * 填充表格方法
     */
    private void fillTableData(){
        //填充表头
        colHead.clear();
        colHead.add( "学号" );
        colHead.add( "姓名" );
        colHead.add( "性别" );
        colHead.add( "年龄" );
        colHead.add( "系部" );
        colHead.add( "班级" );
        colHead.add( "电话" );

        //填充表记录
        rows.clear();
        for (Student student : students){
            Vector<String> currentRow = new Vector<String>(  );
            currentRow.addElement( student.getId() );
            currentRow.addElement( student.getName() );
            currentRow.addElement( student.getSex() );
            currentRow.addElement( student.getAge() +"");
            currentRow.addElement( student.getDepartment() );
            currentRow.addElement( student.getClazz() );
            currentRow.addElement( student.getTelephone() );
            //将当前行添加到记录行集
            rows.add( currentRow );
        }
        //创建表格(参数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 );
            txtClass.setText( "" );
        }else {
            //让滚动条移到最上方
            scroller.getVerticalScrollBar().setValue(0);
        }
    }

    public static void main(String[] args) {
        new DeleteStudentsByClassFrame( "" );
    }
}


运行效果如下:
在这里插入图片描述
(8)按班级删除学生窗口DeleteStudentsByClass
运行结果如下:
在这里插入图片描述
原来是这里文字设置有误:在这里插入图片描述
更正之后完整代码如下:

package net.qt.student.gui;

import net.qt.student.bean.Student;
import net.qt.student.service.StudentService;
import net.qt.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;

/**
 * 功能:按照系部删除学生记录
 * 作者:谯婷
 *日期:2019.6.23
 */
public class DeleteStudentsByDepartmentFrame extends JFrame {
    /**
     * 系部标签
     */
    private JLabel lblInputDepartment;
    /**
     * 系部文本框
     */
    private  JTextField txtDepartment;
    /**
     * 面板
     */
    private JPanel panel;
    private JPanel pnlSouth;
    private JPanel pnlCenter;
    private JPanel pnlNouth;
    /**
     * 按钮
     */
    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 DeleteStudentsByDepartmentFrame(String title){
        super(title);
        initGUI();
    }
    private void  initGUI(){
        //创建组件
        panel = (JPanel)getContentPane();
        pnlNouth = new JPanel(  );
        pnlCenter = new JPanel(  );
        pnlSouth = new JPanel(  );

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

        lblInputDepartment = new JLabel( "输入系部:" );
        txtDepartment = new JTextField( 10 );
        txtDepartment.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( pnlNouth, BorderLayout.NORTH );

        pnlNouth.add( lblInputDepartment );
        pnlNouth.add( txtDepartment );
        pnlNouth.add( btnQuery );
        pnlNouth.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 e) {
                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 department = txtDepartment.getText().trim();
                        //按系部删除学生
                        int count = studentService.deleteStudentByDepartment( department );
                        if(count > 0){
                            JOptionPane.showMessageDialog( null,"记录删除成功!","提示",JOptionPane.INFORMATION_MESSAGE );
                            //重新获取全部学生列表
                            students = studentService.findAllStudents();
                            //清空待删班级文本框
                            txtDepartment.setText("");
                            //填充数据
                            fillTableData();
                            //删除按钮不可用
                            btnDelete.setEnabled( false );
                        }else{
                            JOptionPane.showMessageDialog( null,"记录删除失败!","警告",JOptionPane.WARNING_MESSAGE );
                        }
                    }
                }
            }
        } );

        //【查询】按钮单击事件
        btnQuery.addActionListener( new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                doQuery();
            }
        } );
        //【显示全部记录】按钮单击事件
        btnBrowseAll.addActionListener( new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //获取全部学生记录
                students = studentService.findAllStudents();
                //填充表格数据
                fillTableData();
                //删除按钮不可用
                btnDelete.setEnabled( false );
            }
        } );
        //【系部】文本框按键事件
        txtDepartment.addKeyListener( new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                if(e.getKeyCode() == KeyEvent.VK_ENTER){
                    doQuery();
                }
            }
        } );

        //表格单击事件
        table.addMouseListener( new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                //获取当前行的行数
                int row = table.rowAtPoint( e.getPoint() );
                //选中鼠标单击的行
                table.setRowSelectionInterval( row,row );
                //设置文本框的内容
                txtDepartment.setText( table.getValueAt( row,4 ).toString() );
            }
        } );
    }
    /**
     * 查询方法
     */
    private void doQuery(){
        //获取查询系部
        String department = txtDepartment.getText().trim();
        if(!department.equals( "" )){
            students = studentService.findStudentsByDepartment( department );
            if(students.size() > 0){
                //让删除按钮可用
                btnDelete.setEnabled( true );
            }
            //填充表格
            fillTableData();
        }else{
            JOptionPane.showMessageDialog( this,"请输入待查系部!","警告",JOptionPane.WARNING_MESSAGE );
            txtDepartment.requestFocus();
        }
    }
    /**
     * 填充表格方法
     */
    private void fillTableData(){
        //填充表头
        colHead.clear();
        colHead.add( "学号" );
        colHead.add( "姓名" );
        colHead.add( "性别" );
        colHead.add( "年龄" );
        colHead.add( "系部" );
        colHead.add( "班级" );
        colHead.add( "电话" );

        //填充表记录
        rows.clear();
        for (Student student : students){
            Vector<String> currentRow = new Vector<String>(  );
            currentRow.addElement( student.getId() );
            currentRow.addElement( student.getName() );
            currentRow.addElement( student.getSex() );
            currentRow.addElement( student.getAge() +"");
            currentRow.addElement( student.getDepartment() );
            currentRow.addElement( student.getClazz() );
            currentRow.addElement( student.getTelephone() );
            //将当前行添加到记录行集
            rows.add( currentRow );
        }
        //创建表格(参数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 );
            txtDepartment.setText( "" );
        }else {
            //让滚动条移到最上方
            scroller.getVerticalScrollBar().setValue(0);
        }
    }

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

效果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值