📄 stat.java
字号:
/* * Stat.java * 说明:统计报表 * 编写:赵夏 * Created on 2005年1月1日, 下午7:11 */import javax.swing.*;public class Stat extends javax.swing.JInternalFrame { private int rowCount=1;//行数 private final int colCount=6;//列数 private Object[][] ob=null; private DataConnect dc=null;//自定义数据库连接程序 //自定义MODEL用在JTable private class MyTable extends javax.swing.table.DefaultTableModel { private Class[] types =null; public MyTable(Object[][] ob) { super(ob,new String[] {"借还标志", "图书ID", "用户ID", "日期", "最大归还日期","归还标志"}); types= new Class[6]; try { types[0]=Class.forName("java.lang.Integer"); types[1]=Class.forName("java.lang.Integer"); types[2]=Class.forName("java.lang.Integer"); types[3]=Class.forName("java.lang.String"); types[4]=Class.forName("java.lang.String"); types[5]=Class.forName("java.lang.Integer"); } catch(ClassNotFoundException e) { System.out.println("类路径安装错误"); } } public Class getColumnClass(int columnIndex) { return types [columnIndex]; } }; private MyTable mytable; private void stat_Refresh() { try { java.sql.Statement stmt=dc.getStatement(); String strSql="SELECT count(state) from Borrow"; java.sql.ResultSet rs=stmt.executeQuery(strSql); rs.next(); rowCount=rs.getInt(1)==0?1:rs.getInt(1); ob=new Object[rowCount][colCount]; if(rs.getInt(1)==0) { javax.swing.JOptionPane.showMessageDialog (this,"无数据,请新增数据!","", javax.swing.JOptionPane.ERROR_MESSAGE); } else { rs=null; rs=stmt.executeQuery("SELECT state,BookId,UserId,date,MaxDate,return from Borrow"); int i=0; while(rs.next()) { ob[i][0]=(rs.getInt("state")==0)?"借":"还"; ob[i][1]=new Integer(rs.getInt("BookId")); ob[i][2]=new Integer(rs.getInt("UserId")); ob[i][3]=rs.getString("date"); ob[i][4]=rs.getString("MaxDate"); ob[i][5]=(rs.getInt("return")==0)?"未还":"已还"; i++; } } mytable=new MyTable(ob); statTable.setModel(mytable); stmt=null;rs=null; } catch(java.sql.SQLException sqle) { javax.swing.JOptionPane.showMessageDialog(this,"sql出错"); } } public Stat(DataConnect dc) { initComponents(); this.dc=dc; this.stat_Refresh(); } /** 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. */ private void initComponents() {//GEN-BEGIN:initComponents jPanel1 = new javax.swing.JPanel(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); jButton5 = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); statTable = new javax.swing.JTable(); setClosable(true); setResizable(true); setTitle("\u7edf\u8ba1\u62a5\u8868"); jButton1.setFont(new java.awt.Font("Dialog", 0, 9)); jButton1.setText("\u501f\u4e66\u7edf\u8ba1"); jButton1.setPreferredSize(new java.awt.Dimension(70, 25)); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jPanel1.add(jButton1); jButton2.setFont(new java.awt.Font("Dialog", 0, 9)); jButton2.setText("\u8fd8\u4e66\u7edf\u8ba1"); jButton2.setPreferredSize(new java.awt.Dimension(70, 25)); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jPanel1.add(jButton2); jButton3.setFont(new java.awt.Font("Dialog", 0, 9)); jButton3.setText("\u501f\u8fd8\u5206\u6790"); jButton3.setPreferredSize(new java.awt.Dimension(70, 25)); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jPanel1.add(jButton3); jButton4.setFont(new java.awt.Font("Dialog", 0, 9)); jButton4.setText("\u7528\u6237\u7edf\u8ba1"); jButton4.setPreferredSize(new java.awt.Dimension(70, 25)); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); jPanel1.add(jButton4); jButton5.setFont(new java.awt.Font("Dialog", 0, 9)); jButton5.setText("\u56fe\u4e66\u7edf\u8ba1"); jButton5.setPreferredSize(new java.awt.Dimension(70, 25)); jButton5.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton5ActionPerformed(evt); } }); jPanel1.add(jButton5); getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH); statTable.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null, null, null}, {null, null, null, null, null, null}, {null, null, null, null, null, null}, {null, null, null, null, null, null} }, new String [] { "借还标志", "图书ID", "用户ID", "日期", "最大归还日期", "归还标志" } ) { boolean[] canEdit = new boolean [] { false, false, false, false, false, false }; public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }); jScrollPane1.setViewportView(statTable); getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER); pack(); }//GEN-END:initComponents private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed //图书统计 String val=JOptionPane.showInputDialog("输入图书Id"); try { java.sql.Statement stmt=dc.getStatement(); String strSql=new String("SELECT count(state) from Borrow where BookId=").concat(val); java.sql.ResultSet rs=stmt.executeQuery(strSql); rs.next(); rowCount=rs.getInt(1)==0?1:rs.getInt(1); ob=new Object[rowCount][colCount]; if(rs.getInt(1)==0) { javax.swing.JOptionPane.showMessageDialog (this,"无数据,请新增数据!","", javax.swing.JOptionPane.ERROR_MESSAGE); } else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -