📄 kaoqin.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 + -