TeaScoreFrame

该系统提供教师查看、搜索、导出及更新学生课程成绩的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.gs.stu.view;


import com.gs.stu.bean.Course;
import com.gs.stu.bean.SelectCourse;
import com.gs.stu.bean.SelectCourseView;
import com.gs.stu.file.PrintScoreExcelTable;
import com.gs.stu.service.TeacherService;
import com.gs.stu.service.impl.TeacherServiceImpl;
import com.gs.stu.util.FrameUtil;
import com.gs.stu.util.checkUtil;
import java.io.File;
import java.util.List;
import java.util.Vector;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.table.DefaultTableModel;


/**
 *
 * @author yhy
 */
public class TeaScoreFrame extends javax.swing.JInternalFrame {
  TeacherService teaservice = new TeacherServiceImpl();
    /** Creates new form TeaScoreFrame */
    public TeaScoreFrame() {
        initComponents();
         //初始化课程编号组合框
         List<Course> list = teaservice.findCourseByTeacher(SelectiveMainFrame.teacher.getTid());
         for(Course course:list){
             this.cbCid.addItem(course.getId());
         }
    }


    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {


        jLabel1 = new javax.swing.JLabel();
        cbCid = new javax.swing.JComboBox();
        btnSearch = new javax.swing.JButton();
        btnOutSorce = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        scoreTable = new javax.swing.JTable();
        jLabel2 = new javax.swing.JLabel();
        txtId = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        txtSorce = new javax.swing.JTextField();
        btnSave = new javax.swing.JButton();


        setClosable(true);
        setTitle("教师-成绩管理");
        addInternalFrameListener(new javax.swing.event.InternalFrameListener() {
            public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) {
                formInternalFrameClosed(evt);
            }
            public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) {
            }
            public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) {
            }
        });


        jLabel1.setText("课程编号:");


        btnSearch.setText("搜索");
        btnSearch.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSearchActionPerformed(evt);
            }
        });


        btnOutSorce.setText("导出成绩");
        btnOutSorce.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnOutSorceActionPerformed(evt);
            }
        });


        scoreTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {


            },
            new String [] {
                "学号", "姓名", "课程名", "成绩"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, true
            };


            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        scoreTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                scoreTableMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(scoreTable);


        jLabel2.setText("学号:");


        txtId.setEditable(false);


        jLabel3.setText("成绩:");


        btnSave.setText("保存");
        btnSave.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSaveActionPerformed(evt);
            }
        });


        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 475, Short.MAX_VALUE)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel1)
                                .addGap(18, 18, 18)
                                .addComponent(cbCid, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(btnSearch)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 180, Short.MAX_VALUE)
                                .addComponent(btnOutSorce))))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(18, 18, 18)
                        .addComponent(jLabel2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(txtId, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jLabel3)
                        .addGap(29, 29, 29)
                        .addComponent(txtSorce, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(29, 29, 29)
                        .addComponent(btnSave)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(cbCid, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnOutSorce)
                    .addComponent(btnSearch))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 366, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(txtId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3)
                    .addComponent(txtSorce, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnSave))
                .addContainerGap(26, Short.MAX_VALUE))
        );


        pack();
    }// </editor-fold>                        


private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {                                          
    int cid = (Integer)this.cbCid.getSelectedItem();
    List<SelectCourseView> list = teaservice.findCourseScoreByCid(cid);
    showOnTable(list);
}                                         


private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {                                        
// TODO add your handling code here:
    String id=this.txtId.getText().trim();
    String sorce=this.txtSorce.getText().trim();
    String biao="^[0-9]{8}$";
    String biao1="^[0-9]{1,3}$";
    if(id.equals("")==true)
    {
        JOptionPane.showMessageDialog(this, "学号不能为空");
        this.txtId.requestFocus();
        return;
    }
    if(sorce.equals("")==true)
    {
        JOptionPane.showMessageDialog(this, "成绩不能为空");
        this.txtSorce.requestFocus();
        return;
    }
    boolean b1=checkUtil.checkData(biao,this.txtId.getText());
    if(b1==false)
    {
        JOptionPane.showMessageDialog(this, "学号必须8位纯数字");
        return;
    }
    boolean b2=checkUtil.checkData(biao1,this.txtSorce.getText());
    if(b2==false)
    {
        JOptionPane.showMessageDialog(this, "分数必须为1到3位纯数字");
        return;
    }
    SelectCourse sc=new SelectCourse();
    sc.setSid(Integer.parseInt(id));
    int cid = (Integer)this.cbCid.getSelectedItem();
    sc.setCid(cid);
    sc.setScore(Integer.parseInt(this.txtSorce.getText()));
    boolean b=teaservice.updateScore(sc);
    if(b==true)
    {
         JOptionPane.showMessageDialog(this, "分数录入成功");
         btnSearchActionPerformed(evt);
         return;
    }
    else
    {
        JOptionPane.showMessageDialog(this, "分数录入失败");
         return;
    }
}                                       


private void scoreTableMouseClicked(java.awt.event.MouseEvent evt) {                                        
int row =this.scoreTable.getSelectedRow();
int id=(Integer)this.scoreTable.getValueAt(row,0);
this.txtId.setText(id+"");
}                                       


private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) {                                         


    FrameUtil.framemap.remove("teascoreframe");
}                                        


private void btnOutSorceActionPerformed(java.awt.event.ActionEvent evt) {                                            
    JFileChooser savefile = new JFileChooser();//文件选择对话框
    FileFilter filter = new FileNameExtensionFilter("Excel文件(*.xls)", "*.xls");
    savefile.addChoosableFileFilter(filter);//添加过滤器
    savefile.setFileFilter(filter);    
    
    int flag = savefile.showSaveDialog(this);//打开文件选选择对话框
    File file = null;
    if (flag == JFileChooser.APPROVE_OPTION) {
        //如果点击了保存按钮
        file = savefile.getSelectedFile();
        System.out.println("文件名:" + file.getAbsolutePath());
        //JTable获取数据,输出到文件
        PrintScoreExcelTable.printScoreContent(scoreTable, file);
        JOptionPane.showMessageDialog(this, "导出成功");
    }
}                                           
private void showOnTable( List<SelectCourseView> list){
    DefaultTableModel dtm = (DefaultTableModel) this.scoreTable.getModel();
        while (dtm.getRowCount() > 0) {
            dtm.removeRow(0);
        }
        for(SelectCourseView  selectcourse:list){
            Vector row = new Vector();
            row.add(selectcourse.getSid());
            row.add(selectcourse.getSname());
            row.add(selectcourse.getCoursename());
            row.add(selectcourse.getScore());
            dtm.addRow(row);
        }
}
    // Variables declaration - do not modify                     
    private javax.swing.JButton btnOutSorce;
    private javax.swing.JButton btnSave;
    private javax.swing.JButton btnSearch;
    private javax.swing.JComboBox cbCid;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable scoreTable;
    private javax.swing.JTextField txtId;
    private javax.swing.JTextField txtSorce;
    // End of variables declaration                   
}
内容概要:文章阐述了构建安全教育体系以应对2025年挑战的目标、原则、内容设计、实施路径、预期成效及保障措施。面对日益复杂的社会安全形势,文章提出通过系统化、科学化、人性化的安全教育体系提升全民安全意识与应急能力。该体系涵盖知识普及、技能实训、文化培育三个模块,采用沉浸式学习工具、模块化训练、跨领域协作演练等方式。实施路径分为体系构建(2023-2024年)、试点推广(2024-2025年)、全面覆盖(2025年及以后)三个阶段。预期成效包括提升公众安全素养、降低事故发生率、增强社会韧性。保障措施涉及政策、资源、技术和评估四个方面,确保体系的有效运行。 适合人群:社会各界人士,特别是教育工作者、应急管理从业者、政策制定者以及关注公共安全的个人和组织。 使用场景及目标:①适用于各级学校、企业及社区的安全教育规划与实施;②为政策制定者提供构建安全教育体系的参考框架;③帮助教育工作者设计和优化安全教育课程与活动;④提升公众的安全意识与应急能力,降低安全事故的发生率。 其他说明:本文不仅提供了详细的构建方案,还强调了科学性、系统性、人本性和预见性的核心原则,旨在通过多维度、多层次的安全教育实践,推动安全文化深入人心,为社会的可持续发展奠定坚实基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值