⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kaoqin.java

📁 培训时做的学生管理系统.基于J2SE平台开发
💻 JAVA
字号:
package cn.com.studentsystem.kaoqin;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;

import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import cn.com.studentsystem.excel.KaoQinExcelFrame;
import cn.com.studentsystem.excel.KaoQinPutOutExcel;
import cn.com.studentsystem.exception.NoRowSelectedException;
import cn.com.studentsystem.log.Log;
import cn.com.util.DBConnection;
import cn.com.util.studentsystemcommon.JDatePicker;


public class KaoQin extends JPanel{

	public static JDatePicker date_box;
	public static JTable jtable;
	public static DefaultTableModel  table_model ;
	public static int select_row;
	JOptionPane jop = new JOptionPane();
	
	public KaoQin(){
		
		init();
	
	}
	
	public void init(){
		File file = new File("logdiary.txt");
		PrintWriter pw = null;
		try {
			 pw = new PrintWriter(new FileWriter(file,true),true);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Log.log("KaoQin", pw, "进入了班级考勤本的主界面");
		this.setSize(740, 500);
		this.setLayout(new BorderLayout());
	    
		GridLayout grid = new GridLayout(4,1,10,10);
	    Font f = new Font("",Font.HANGING_BASELINE,40);
	    Font f1 = new Font("",Font.TYPE1_FONT,20);
		
		KaoQinJPanel kaoqin_panel = new KaoQinJPanel();
		JPanel left_panel = new JPanel();
		
//		JSplitPane split_panel = new JSplitPane();
//		split_panel.setAutoscrolls(true);
		JPanel button_panel = new JPanel();
		button_panel.setBorder(BorderFactory.createTitledBorder("操作按钮"));
		
//		left_panel.setLayout(grid);
		kaoqin_panel.setLayout(new BorderLayout());
		
		JLabel jl = new JLabel("中信29班考勤本",JLabel.CENTER);
		jl.setFont(f);
		jl.setForeground(Color.BLACK);
		
		/**
		 * 以下是设置按钮/////////////////////////////////////////////////////////
		 */
//		ImageIcon i1 = new ImageIcon("image//tr.png");
//		ImageIcon i2 = new ImageIcon("image//sr.png");
//		ImageIcon i3 = new ImageIcon("image//cr.png");
//		ImageIcon i4 = new ImageIcon("image//gr.png");
//		ImageIcon i5 = new ImageIcon("image//trr.png");
//		ImageIcon i6 = new ImageIcon("image//srr.png");
//		ImageIcon i7 = new ImageIcon("image//crr.png");
//		ImageIcon i8 = new ImageIcon("image//grr.png");
//		
		
		JButton jb1 = new JButton("添加记录");
		JButton jb2 = new JButton("删除记录");
		JButton jb3 = new JButton("查找记录");
		JButton jb4 = new JButton("修改记录");
//		
//		jb1.setRolloverEnabled(true);
//		jb2.setRolloverEnabled(true);
//		jb3.setRolloverEnabled(true);
//		jb4.setRolloverEnabled(true);
//		
//		jb1.setRolloverIcon(i5);
//		jb2.setRolloverIcon(i6);
//		jb3.setRolloverIcon(i7);
//		jb4.setRolloverIcon(i8);
		
//		jb1.setHorizontalTextPosition(JButton.CENTER);
//		jb2.setHorizontalTextPosition(JButton.CENTER);
//		jb3.setHorizontalTextPosition(JButton.CENTER);
//		jb4.setHorizontalTextPosition(JButton.CENTER);
//		
//		jb1.setVerticalTextPosition(JButton.CENTER);
//		jb2.setVerticalTextPosition(JButton.CENTER);
//		jb3.setVerticalTextPosition(JButton.CENTER);
//		jb4.setVerticalTextPosition(JButton.CENTER);
//		
//		jb1.setFont(f1);
//		jb2.setFont(f1);
//		jb3.setFont(f1);
//		jb4.setFont(f1);
		
		button_panel.add(jb1);
		button_panel.add(jb2);
		button_panel.add(jb3);
		button_panel.add(jb4);
		
/////////以上是设置按钮		//////////////////////////////////////////////////////////////////////////////
		
		Object[] column_name = {"日期时间","应到人数","实到人数","迟到者","迟到缘由"};
		Object[][] row_name = {};
		
		JScrollPane jsp = new JScrollPane();
	    table_model = new DefaultTableModel(row_name,column_name);
	    jtable = new JTable(table_model);
		jtable.setRowHeight(20);
		TableColumnModel columnModel = jtable.getColumnModel();
        date_box = new JDatePicker();
        jtable.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(date_box));
        jtable.setShowVerticalLines(true);
		jsp.setViewportView(jtable);
		
		JButton excel = new JButton("导出Excel表");
		kaoqin_panel.add(jsp);
		kaoqin_panel.add(jl,"North");
		button_panel.add(excel);
//		kaoqin_panel.add(excel,"South");
//		split_panel.setLeftComponent(left_panel);
//		split_panel.setRightComponent(kaoqin_panel);
		
		this.add(button_panel,"South");
		this.add(kaoqin_panel,"Center");
		this.setVisible(true);
		
		class KaoqinAction implements ActionListener{

			
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				if(arg0.getActionCommand().equals("添加记录")){
					File file = new File("logdiary.txt");
					PrintWriter pw = null;
					try {
						 pw = new PrintWriter(new FileWriter(file,true),true);
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					Log.log("KaoQin的添加记录按钮", pw, "进入添加记录的界面");
					AddRecord add = new AddRecord();
				}else if(arg0.getActionCommand().equals("删除记录")){
					File file = new File("logdiary.txt");
					PrintWriter pw = null;
					try {
						 pw = new PrintWriter(new FileWriter(file,true),true);
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					Log.log("KaoQin的删除记录按钮", pw, "进入删除记录的界面");
					
					int row = -1;
					row= jtable.getSelectedRow();
					
					if(row==-1){
						
					try {
							throw new NoRowSelectedException("没有选中任何行");
						} catch (NoRowSelectedException e) {
							// TODO Auto-generated catch block
							jop.showMessageDialog(null, "你没有选中任何行进行操作,请选择!");
						}
					 }
				    else{Connection con = DBConnection.getConnectionOracle();
				         String select_date = (String) table_model.getValueAt(row, 0);
				     try {
				    	 int close = jop.showConfirmDialog(null, "是否删除记录", "记录提示", jop.YES_NO_CANCEL_OPTION);
						 if(close == jop.YES_OPTION){
				    	 table_model.removeRow(row);
				    	 PreparedStatement ps = con.prepareStatement("delete from attendance where datetime = ?");
					     ps.setString(1, select_date);
					     ps.executeUpdate();
						 }
					     } catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					  }
					  
				   }
					
	             }else if(arg0.getActionCommand().equals("查找记录")){
					File file = new File("logdiary.txt");
					PrintWriter pw = null;
					try {
						 pw = new PrintWriter(new FileWriter(file,true),true);
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					Log.log("KaoQin的查找记录按钮", pw, "进入查找记录的界面");
					
					SelectRecord select = new SelectRecord();
			
				}else if(arg0.getActionCommand().equals("修改记录")){
					File file = new File("logdiary.txt");
					PrintWriter pw = null;
					try {
						 pw = new PrintWriter(new FileWriter(file,true),true);
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					Log.log("KaoQin的修改记录按钮", pw, "进入修改记录的界面");
				    
					int rows = -1;
				    rows = jtable.getSelectedRow();
					if(rows == -1){
						try {
							throw new NoRowSelectedException("没有任何行选择进行操作");
						} catch (NoRowSelectedException e) {
							
							jop.showMessageDialog(null, "你没有选中任何行进行操作,请选择!");
							
						}
					 }else{
						 UpdateRecord update = new UpdateRecord();
							String date =(String) table_model.getValueAt(rows, 0);
							String all = table_model.getValueAt(rows, 1).toString();
							String  part =table_model.getValueAt(rows, 2).toString();
					        String later = (String)table_model.getValueAt(rows, 3);
						    String reason = (String)table_model.getValueAt(rows, 4);
						    update.date_text.setSelectedItem(date.substring(0,10));
						    update.be_text.setText(all);
						    update.now_text.setText(part);
						    update.late_text.setText(later);
						    update.expalin_text.setText(reason);
						 
					 }
				   
				    
				  } else if(arg0.getActionCommand().equals("导出Excel表")){
					  KaoQinExcelFrame excel_frame = new KaoQinExcelFrame();
//					    String filename = "f:\\kaoqin.xls";
//						int row_count = jtable.getRowCount();
//						Vector vector = new Vector();
//						for(int i=0;i<row_count;i++){
//							vector.add(table_model.getValueAt(i, 0));
//							vector.add(table_model.getValueAt(i, 1));
//							vector.add(table_model.getValueAt(i, 2));
//							vector.add(table_model.getValueAt(i, 3));
//							vector.add(table_model.getValueAt(i, 4));
//						}
//						
////						System.out.println(vector.elementAt(0));
//						WritableWorkbook workbook = KaoQinPutOutExcel.buildWorkBook(filename);
////						WritableSheet  sheet = KaoQinPutOutExcel.setTitle(workbook);
//						WritableSheet sheet = KaoQinPutOutExcel.setExcel(workbook, row_count,vector);
////						try {
////							workbook.write();
////						} catch (IOException e) {
////							// TODO Auto-generated catch block
////							e.printStackTrace();
////						}
//					  jop.showMessageDialog(null, "表已导出,存放在"+filename);
				 }
			}
			
		}
		
		KaoqinAction kaoqin_action = new KaoqinAction();
		jb1.addActionListener(kaoqin_action);
		jb2.addActionListener(kaoqin_action);
		jb3.addActionListener(kaoqin_action);
		jb4.addActionListener(kaoqin_action);
		excel.addActionListener(kaoqin_action);
		
		
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -