swing_技术总结.doc_第1页
swing_技术总结.doc_第2页
swing_技术总结.doc_第3页
swing_技术总结.doc_第4页
swing_技术总结.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

技术总结1. 在TabbedPane1中添加panel.jTabbedPane1.insertTab(户主信息显示,null,queryShowUserPanel,null,2);参数依次注释 在此选项卡中显示的标题 此选项卡中显示的图标 此选项卡时要显示的组件。 此选项卡要显示的工具提示 插入此新选项卡的位置jTabbedPane1.add(welcomePanel,欢迎使用); 此选项卡时要显示的组件。在此选项卡中显示的标题 jTabbedPane1.setSelectedIndex(2); 显示选项卡的位置死的panel2. 判断是否是整数 boolean IsInt(String str) try int i = Integer.parseInt(str) ; System.out.println(你输入的整数是+ i) ; return true ; catch (NumberFormatException e) System.out.println(你输入的不是整数) ; return false ; 3. 标题上显示自己的图标 this.setIconImage(img); (构造函数里面)Toolkit kit = Toolkit.getDefaultToolkit();Image img = kit.getImage();4. 关闭窗口 this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) try Process process = Runtime.getRuntime().exec(cmd.exe /c start exepskill.exe +demo_card.exe); catch(Exception exc) exc.printStackTrace(); System.exit(0); );5. 判断数据库中某一字段的直的个数不能超过一定的个数String adminsql =SELECT count(*) FROM admin_user where 权限=3;PreparedStatement prepared2=connection.prepareStatement(adminsql);ResultSet rs2=prepared2.executeQuery(); if(rs2.next() if(rs2.getInt(1) = 10) System.out.println(rs2.getInt(1) = + rs2.getInt(1); notice(管理员的人数不能超过10人); admin_HIndex.setEnabled(false); return; 6. 浏览事件 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) if(jTextField11.getText().equals() notice(IC卡号不能为空); admin_HIndex.setEnabled(false); return; String ICCard = jTextField11.getText().toString(); JFileChooser jFileChooser = new JFileChooser(); jFileChooser.setCurrentDirectory(new File(.); jFileChooser.showOpenDialog(this); String fromPath = jFileChooser.getSelectedFile().getPath(); String extendName = fromPath.substring(fromPath.lastIndexOf(.); String toDir = userPic+ ICCard + extendName; /文件复制在某一个路径下,并更名 System.out.println(toDir +toDir); try int bytesum = 0; int byteread = 0; File oldfile = new File(fromPath); if (oldfile.exists() /文件存在时 InputStream inStream = new FileInputStream(fromPath); /读入原文件 FileOutputStream fs = new FileOutputStream(toDir); byte buffer = new byte99999; int length; while ( (byteread = inStream.read(buffer) != -1) bytesum += byteread; /字节数 文件大小 System.out.println(bytesum); fs.write(buffer, 0, byteread); inStream.close(); catch (Exception e) System.out.println(复制单个文件操作出错); e.printStackTrace(); jTextField1.setText(ICCard+extendName); 7. 判断日期是否正确 if(jComboBox5.getSelectedItem().toString().equals(31) if(jComboBox4.getSelectedItem().toString().equals(04)| (jComboBox4.getSelectedItem().toString().equals(06)|(jComboBox4.getSelectedItem().toString().equals(09)| (jComboBox4.getSelectedItem().toString().equals(11) notice(您出生日期格式不正确); admin_HIndex.setEnabled(false); return; if(jComboBox4.getSelectedItem().toString().equals(02) int i = Integer.parseInt(jComboBox3.getSelectedItem().toString()%4; if(i!=0) if(jComboBox5.getSelectedItem().toString().equals(29) notice(您出生日期格式不正确); admin_HIndex.setEnabled(false); return; if(jComboBox5.getSelectedItem().toString().equals(30) | (jComboBox5.getSelectedItem().toString().equals(31) notice(您出生日期格式不正确); admin_HIndex.setEnabled(false); return; 8. 判断是否是数字 public boolean isNum(String msg) if(java.lang.Character.isDigit(msg.charAt(0) System.out.println(是数字); return true; System.out.println(不是数字); return false; 9. 得到日期的类型 import java.util.*;import java.text.*;/时间转换类public class DateChange /*返回当前时间的各种不同显示类型 *return 当前时间的不同显示类别 */ public static String getdate() /日期 Date today; /定义一个时间转换的操作 /Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 /日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法 Calendar now; /DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间 DateFormat f1, f2; String s1, s2;/ System.out.println(n显示Date类的相关用法); /格式是Tue Oct 10 15:56:45 CST 2006 today = new Date();/显示各种日期格式 /*显示形如 2006-10-10 的时间*/ f1 = DateFormat.getDateInstance(); s1 = f1.format(today); /*显示形如 2006年10月10日 的时间*/f1 = DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA);/s1 = f1.format(today); /*显示形如 2006-10-10 的时间*/ f1 = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.CHINA);/ s1 = f1.format(today); /*显示形如 15:56:45 的时间*/f1 = DateFormat.getDateInstance(DateFormat.SHORT, Locale.CHINA);/s1 = f1.format(today); /*显示形如 06-10-10 的时间*/f1 = DateFormat.getTimeInstance();/s1 = f1.format(today); /*显示形如 下午03时56分45秒 的时间*/f1 = DateFormat.getTimeInstance(DateFormat.LONG, Locale.CHINA);/s1 = f1.format(today); /*显示形如 15:56:45 的时间*/f1 = DateFormat.getTimeInstance(DateFormat.MEDIUM, Locale.CHINA);/s1 = f1.format(today); /*显示形如 下午3:56 的时间*/f1 = DateFormat.getTimeInstance(DateFormat.SHORT, Locale.CHINA);/s1 = f1.format(today); /*显示形如 Tue Oct 10 15:56:45 CST 2006 的时间*/now = Calendar.getInstance();/today = now.getTime(); return s1; 10. 把table导出excel public void personInforsToExcel() WritableWorkbook book= null; WritableSheet sheet= null; ChoosePath choosePath = new ChoosePath(this); File file = choosePath.getFile(); try /在excel中显示的一栏 book = Workbook.createWorkbook(file); sheet= book.createSheet(第一页,0); sheet.addCell(new Label(0,0,序号); sheet.addCell(new Label(1,0,姓名); sheet.addCell(new Label(2,0,性别); sheet.addCell(new Label(3,0,民族); sheet.addCell(new Label(4,0,出生年月日); sheet.addCell(new Label(5,0,家庭住址); sheet.addCell(new Label(6,0,身份证号); sheet.addCell(new Label(7,0,照片); sheet.addCell(new Label(8,0,进入时间); sheet.addCell(new Label(9,0,离开时间); sheet.addCell(new Label(10,0,来访卡号); catch(Exception e) e.printStackTrace(); for(int row = 1;row = otherLoginTabaleModel.getRowCount(); row+) try /把Table表中的数据写入exceljxl.write.Number number = new jxl.write.Number(0,row,Integer.parseInt(otherLoginTabaleModel.getValueAt(row-1,0).toString(); /表中的第0例写入到excel的第1列sheet.addCell(number);/表中的第3例写入到excel的第2列(含有表中第0列)Label label1 = new Label(1,row,otherLoginTabaleModel.getValueAt(row-1,3).toString();sheet.addCell(label1);/表中的第4例写入到excel的第3列(含有表中第0列)Label label2=new Label(2,row,otherLoginTabaleModel.getValueAt(row-1,4).toString();sheet.addCell(label2);/表中的第5例写入到excel的第5列(含有表中第0列)Label label3=new Label(3,row,otherLoginTabaleModel.getValueAt(row-1,5).toString();sheet.addCell(label3);Label label4=new Label(4,row,otherLoginTabaleModel.getValueAt(row-1,6).toString();sheet.addCell(label4);Label label5=new Label(5,row,otherLoginTabaleModel.getValueAt(row-1,7).toString();sheet.addCell(label5);Label label6=new Label(6,row,otherLoginTabaleModel.getValueAt(row-1,8).toString();sheet.addCell(label6);Label label7=new Label(7,row,otherLoginTabaleModel.getValueAt(row-1,9).toString();sheet.addCell(label7);Label label8=new Label(8,row,otherLoginTabaleModel.getValueAt(row-1,10).toString();sheet.addCell(label8);Label label9=new Label(9,row,otherLoginTabaleModel.getValueAt(row-1,11).toString();sheet.addCell(label9);Label label10=new Label(10,row,otherLoginTabaleModel.getValueAt(row-1,2).toString();sheet.addCell(label10); catch(Exception e) e.printStackTrace(); try book.write(); book.close(); catch(Exception e) System.out.println(e); 保存文件的路径 public class ChoosePath Component component; /* Creates a new instance of ChoosePath */ public ChoosePath(Component component) ponent = component; public File getFile() JFileChooser jFileChooser = new JFileChooser(); jFileChooser.setCurrentDirectory(new File(excel); jFileChooser.showSaveDialog(ponent); File file = new File(jFileChooser.getSelectedFile().getPath()+ .xls); return file; 11. 图片的放大和缩小/* srcImageFile初始文件的路径及文件名*result 缩小或放大后文件存放的路径及文件名*scale 放大或缩小倍数* flag ture 表示放大 false表示缩小*/ public static void scale(String srcImageFile, String result, int scale, boolean flag) try BufferedImage src = ImageIO.read(new File(srcImageFile); / 读入文件 int width = src.getWidth(); / 得到源图宽 int height = src.getHeight(); / 得到源图长 if (flag) / 放大 width = width * scale; height = height * scale; else / 缩小 width = width / scale; height = height / scale; Image image = src.getScaledInstance(width, height, Image.SCALE_DEFAULT); BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics g = tag.getGraphics(); g.drawImage(image, 0, 0, null); / 绘制缩小后的图 g.dispose(); ImageIO.write(tag, JPG, new File(result);/ 输出到文件流 catch (IOException e) e.printStackTrace(); 12. 表中查看 修改 删除操作的事件 /表事件 private void jTable1MousePressed(java.awt.event.MouseEvent evt) if(evt.getButton()=MouseEvent.BUTTON3) rows = jTable1.getSelectedRows(); int row2 = jTable1.getSelectedRow(); row1 = jTable1.rowAtPoint(evt.getPoint(); rowCount = jTable1.getSelectedRowCount(); if(row2!=-1) jPopupMenu1.show(jTable1, evt.getX(), evt.getY(); /修改 查看 jPopupMenu1中的jMenuItem1事件 private void jMenuItem1MousePressed(java.awt.event.MouseEvent evt) String Admininfo = adminTabaleModel.getValueAt(rows0,1).toString(); 得到表中的点击某一行的第一例的值 AmendAdminInfoPanel amendAdminInfoPanel = new AmendAdminInfoPanel(admin_HIndex,this,Admininfo); /删除 jPopupMenu1中的jMenuItem2事件private void jMenuItem2MousePressed(java.awt.event.MouseEvent evt) try Connection connection=conn.getSQLConnection(); PreparedStatement delPrepared=null; /删除数据库中的一条网元信息 for(int i=0;irowCount;i+) String sqlDel=DELETE FROM Admin_User WHERE 用户名=? ; delPrepared=connection.prepareStatement(sqlDel); delPrepared.setString(1,adminTabaleModel.getValueAt(row1,1).toString();得到表中的点击某一行的第一例的值 delPrepared.executeUpdate(); adminTabaleModel.removeRow(rowsi-i); /删除缓存中的对应的那条网元信息 conn.close(connection); catch(SQLException exc) exc.printStackTrace(); jTable1.setModel(new DefaultTableModel(); jTable1.setModel(adminTabaleModel);使用到的变量和对象int rows;/所有被选中的行 int rowCount;/被选中的行数 int row1,col; /当前所选的行列 MyTableModel adminTabaleModel;13. 模糊查询 public List findSQLPersonInfors(String name, String id, String sex, String time1, String time2, String time3, String time4, boolean flag) List personInforCol = new ArrayList(); PreparedStatement psmt = null; ResultSet rs = null; try conn = connManager.getSQLConnection(); System.out.println(conn=+conn); if(!name.equals() SQL_FIND_PERSONINFORS = SQL_FIND_PERSONINFORS + SQL_AND_NAME + name + %; if(!id.equals() SQL_FIND_PERSONINFORS = SQL_FIND_PERSONINFORS + SQL_AND_ID + id + %; if(sex.equals(男) SQL_FIND_PERSONINFORS = SQL_FIND_PERSONINFORS + SQL_AND_SEX + 男; else if(sex.equals(女) SQL_FIND_PERSONINFORS = SQL_FIND_PERSONINFORS + SQL_AND_SEX + 女; /建议将time2在界面上默认设置成2017-12-31 23:59:59 if(!time1.equals() / SQL_FIND_PERSONINFORS = SQL_FIND_PERSONINFORS + SQL_AND_TIME1 + java.sql.Date.valueOf(time1) + SQL_AND_TIME2 + java.sql.Date.valueOf(time2); SQL_FIND_PERSONINFORS = SQL_FIND_PERSONINFORS + SQL_AND_TIME1 + time1 + SQL_AND_TIME2 + time2+ ; if(!time3.equals() / SQL_FIND_PERSONINFORS = SQL_FIND_PERSONINFORS + SQL_AND_TIME1 + java.sql.Date.valueOf(time1) + SQL_AND_TIME2 + java.sql.Date.valueOf(time2); SQL_FIND_PERSONINFORS = SQL_FIND_PERSONINFORS + SQL_AND_TIME3 + time3 + SQL_AND_TIME4 + time4+ ; SQL_FIND_PERSONINFORS = SQL_FIND_PERSONINFORS + SQL_AND_DESC; System.out.println( sql =+SQL_FIND_PERSONINFORS); psmt = conn.prepareStatement(SQL_FIND_PERSONINFORS); rs = psmt.executeQuery(); System.out.println(psmt=+psmt); System.out.println(sql= + SQL_FIND_PERSONINFORS); while(rs.next() PersonInforDTO personInfor = new PersonInforDTO(rs.getLong(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9), rs.getString(10), rs.getString(11); personInforCol.add(personInfor); catch (SQLException ex) ex.printStackTrace(); return personInforCol;14. 文件的操作 (见OperateFile.java)15. 文件的传输和下载 (见包rmi包和transfile包)下载调用的方法 GetFileFromServer getFileFromServer = new GetFileFromServer(); getFileFromServer.getFileFromServer(IDCardName,2201,2202);上传调用的方法SendFileToServer sendFileToServer = new SendFileToServer(); sendFi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论