📄 queryjdialog.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. *//* * QueryJDialog.java * * Created on 2008-12-25, 9:18:22 */package frame;import entity.Record;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Vector;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.JFileChooser;import javax.swing.JOptionPane;import javax.swing.table.DefaultTableModel;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.hssf.usermodel.contrib.HSSFCellUtil;import utils.DBUtils;/** * * @author Jason */public class QueryJDialog extends javax.swing.JDialog { /** Creates new form QueryJDialog */ public QueryJDialog(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); } /** 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">//GEN-BEGIN:initComponents private void initComponents() { jLabel1 = new javax.swing.JLabel(); jComboBox1 = new javax.swing.JComboBox(); jLabel2 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jButton1 = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); jButton5 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); jLabel1.setText("请选择类别:"); jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { " ", "姓名", "手机" })); jLabel2.setText("输入关键字:"); jButton1.setText("查 询"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { }, new String [] { "姓名", "性别", "生日", "固话/传真", "手机", "办公地址", "家庭住址", "Email", "QQ", "备注" } )); jScrollPane1.setViewportView(jTable1); jButton2.setText("退 出"); jButton3.setText("数据导出"); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jButton4.setText("删 除"); jButton5.setText("修 改"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 754, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 129, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton1)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(jButton5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton2))) .addContainerGap()) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jButton2, jButton3, jButton4, jButton5}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel2) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButton1)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 369, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton2) .addComponent(jButton3) .addComponent(jButton4) .addComponent(jButton5)) .addContainerGap()) ); pack(); }// </editor-fold>//GEN-END:initComponents private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed // TODO add your handling code here: DefaultTableModel dtm = (DefaultTableModel) this .jTable1.getModel(); int size = this.jTable1.getRowCount(); for(int i=0;i<size;i++){ dtm.removeRow(0); } String type = (String) this.jComboBox1.getSelectedItem(); String keyWord = this.jTextField1.getText(); if(type.trim().length() == 0 && keyWord.trim().length() !=0){ JOptionPane.showMessageDialog(this, "请选择查询类别"); return; } if(type.trim().length() != 0 && keyWord.trim().length() == 0){ JOptionPane.showMessageDialog(this, "请输入关键字"); return; } String sql = "select * from t_record"; if(type.trim().length() != 0 && keyWord.trim().length() != 0){ if(type.equals("姓名")){ sql += " where name like "; }else if(type.equals("手机")){ sql += " where mobile like "; } sql += "'%" + keyWord.trim() + "%'"; } //System.out.println(sql); Connection con = DBUtils.getConnection(); Statement stmt = null; try { stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); boolean flag = false; while(rs.next()){ flag = true; Record record = new Record(); record.setRecordid(rs.getInt(1)); record.setName(rs.getString(2)); record.setSex(rs.getBoolean(3)); record.setBirthday(rs.getDate(4)); record.setPhone(rs.getString(5)); record.setMobile(rs.getString(6)); record.setOfficeaddr(rs.getString(7)); record.setHomeaddr(rs.getString(8)); record.setEmail(rs.getString(9)); record.setQq(rs.getString(10)); record.setRemark(rs.getString(11)); record.setTypeid(rs.getInt(12)); Vector rowData = new Vector(); rowData.add(record); String sex = record.isSex()?"男":"女"; rowData.add(sex); Date birthday = record.getBirthday(); String date = ""; if(birthday != null){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); date = sdf.format(birthday); } rowData.add(date); String phone = record.getPhone(); phone = phone==null?"":phone; rowData.add(phone); String mobile = record.getMobile(); mobile = mobile==null?"":mobile; rowData.add(mobile); String officeaddr = record.getOfficeaddr(); officeaddr = officeaddr==null?"":officeaddr; rowData.add(officeaddr); String homeaddr = record.getHomeaddr(); homeaddr = homeaddr==null?"":homeaddr; rowData.add(homeaddr); String email = record.getEmail(); email = email==null?"":email; rowData.add(email); String qq = record.getQq(); qq = qq==null?"":qq; rowData.add(qq); String remark = record.getRemark(); remark = remark==null?"":remark; rowData.add(remark); dtm.addRow(rowData); } if(!flag){ JOptionPane.showMessageDialog(this, "没有查到匹配记录!"); } } catch (SQLException ex) { Logger.getLogger(QueryJDialog.class.getName()) .log(Level.SEVERE, null, ex); }finally{ DBUtils.closeAll(stmt, con); } }//GEN-LAST:event_jButton1ActionPerformed private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed // TODO add your handling code here: if(this.jTable1.getRowCount() == 0){ JOptionPane.showMessageDialog(this, "没有要导出的数据!"); return; } JFileChooser fileChooser = new JFileChooser(); int result = fileChooser.showSaveDialog(this); if(result == JFileChooser.APPROVE_OPTION){ File file = fileChooser.getSelectedFile(); System.out.println(file.getAbsolutePath()); String filename = file.getAbsolutePath(); int index = filename.indexOf("."); if(index == -1){ filename += ".xls"; }else{ String extension = filename.substring(index+1); if(!extension.equals(".xls")){ filename = filename.substring(0,index) + ".xls"; } } try { FileOutputStream fos = new FileOutputStream(filename); HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("个人通讯录"); HSSFRow row = sheet.createRow(0); String[] colsName = new String[]{ "姓名","性别","生日","固话/传真", "手机","办公地址","家庭住址","Email","qq", "备注" }; for(int i=0;i<colsName.length;i++){ HSSFCellUtil.createCell(row, i, colsName[i]); } DefaultTableModel dtm = (DefaultTableModel) this.jTable1.getModel(); Vector v = dtm.getDataVector(); for(int i=0;i<v.size();i++){ HSSFRow row1 = sheet.createRow(i+1); Vector rowData = (Vector) v.get(i); for(int j=0;j<rowData.size();j++){ HSSFCellUtil.createCell( row1,j,rowData.get(j).toString()); } } workbook.write(fos); fos.close(); } catch (IOException ex) { Logger.getLogger(QueryJDialog.class.getName()).log(Level.SEVERE, null, ex); } } }//GEN-LAST:event_jButton3ActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { QueryJDialog dialog = new QueryJDialog(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); } }); dialog.setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JButton jButton5; private javax.swing.JComboBox jComboBox1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1; private javax.swing.JTextField jTextField1; // End of variables declaration//GEN-END:variables}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -