我的"Java开发通讯簿系统"开发经历 (六)

七、源代码


MessageBook.java源代码;

  其中,用到了两个表,一个数据源:

  两个表:   "通讯簿"
            "Managerkey"
 
 一个数据源: Messagerbook

 一个连接:  Help.exe   (源代码第150行上下),代码中已设置为当前文件夹。

import java.awt.*;
import java.sql.*;
import java.util.*;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.io.*;
import java.awt.event.*;
import javax.swing.JOptionPane;

 public class MessageBook implements ActionListener{
  private Frame fra;
  static  Panel panel;
  
  private Button acceButt;
  private Button bSetKey;
    private Button bFind;
   
    private Button bInfor;
   
  public static TextField outPutN;
  public static TextField outPutT;
  
  static  CardLayout card;
  
  private Interface inter;
    private Accession acce;
  private SetKey  setKey;
  private Find find;
  private MenuItem mnuClose;
 private MenuItem mnuEdition;
 
 
  
  
  MessageBook(){
   fra=new Frame("通讯簿管理系统");//生成一个窗口
   fra.setLayout(null);
   fra.setSize(750,500);
   fra.setBackground(Color.white);
   fra.setVisible(true);
   fra.setIconImage((new javax.swing.ImageIcon("images/abc.gif")).getImage());
   acceButt=new Button("添加");    //加入一个添加的按纽
   acceButt.setSize(90,25);
   acceButt.setLocation(45,80);
   fra.add(acceButt);
   acceButt.addActionListener(this);
                                  //加入一个设置密码的按纽
   bSetKey=new Button("设置密码");
   bSetKey.setSize(90,25);
   bSetKey.setLocation(45,200);
   fra.add(bSetKey);
   bSetKey.addActionListener(this);
                                  //加入一个查找的按纽
   bFind=new Button("查询");
   bFind.setSize(90,25);
   bFind.setLocation(45,140);
   fra.add(bFind);
   bFind.addActionListener(this);   
                               
 
                               //加入一个用户帮助手册的按钮
   bInfor=new Button("用户手册");
   bInfor.setSize(90,25);
   bInfor.setLocation(45,260);
   fra.add(bInfor);
   bInfor.addActionListener(this);
   
   MenuBar mb=new MenuBar();
        fra.setMenuBar(mb);

        Menu m1=new Menu("操作");
        mnuClose=new MenuItem("关闭(&C)");
        mnuClose.addActionListener(new ButtonExitClick());//设置菜单事件处理
        mnuClose.setShortcut(new MenuShortcut(KeyEvent.VK_C));//设置菜单快捷键
        m1.add(mnuClose);
        mb.add(m1);

        Menu m2=new Menu("关于");
        mnuEdition=new MenuItem("版本");
        mnuEdition.addActionListener(new MnuEdi());
        m2.add(mnuEdition);
        mb.add(m2);
        
       
        outPutN=new TextField(15);
        outPutN.setSize(100,20);
        outPutN.setLocation(30,420);
        outPutN.setEditable(false);
        fra.add(outPutN);
       
     /*   outPutT=new TextField(15);
        outPutT.setSize(100,20);
        outPutT.setLocation(30,350);
        outPutT.setEditable(false);
        fra.add(outPutT);
       */
   acce=new Accession();    //生成一个添加功能的界面
      inter=new Interface();
      setKey=new SetKey();
      find=new Find();
   NowTime time= new NowTime();
   
   panel=new Panel();
   panel.setSize(550,400);
      card=new CardLayout();
     panel.setLayout(card);
   panel.setLocation(155,70);
     panel.setVisible(true);
        panel.setBackground(Color.pink);
   panel.add("a",inter);
   panel.add("c",acce);
   panel.add("d",setKey);
   panel.add("f",find);
  
   fra.add(panel);
   
                         //处理窗口关闭事件
   fra.addWindowListener(
      new WindowAdapter(){
      public void windowClosing(WindowEvent e){
          System.exit(0);
       }
   }
  );
   
  
  }
  
    public void actionPerformed(ActionEvent t){
       
        if(t.getSource()==acceButt){
             card.show(panel,"c");
        }
       
        if(t.getSource()==bSetKey){
            card.show(panel,"d");
           
        }
       
        if(t.getSource()==bFind){
           card.show(panel,"f");
        }
    
     if(t.getSource()==bInfor){
      try{
        Runtime ce=Runtime.getRuntime();
 
          File file=new File(".","Help.exe");
        ce.exec(file.getAbsolutePath());
      }catch(Exception e){
         JOptionPane.showMessageDialog(null,e,"帮助信息",JOptionPane.WARNING_MESSAGE);
     }
    }
   
      }
  
 
   public static void main(String[] arg){
   MessageBook messageBook=new MessageBook();
   
  }
 
 }
    
    class NowTime{
     private Date time ;
     SimpleDateFormat  matter1,matter2;
     NowTime(){
      time =new Date();
      matter1=new SimpleDateFormat("yyyy年MM月DD日");
      matter2=new SimpleDateFormat("HH时MM分ss秒");
      String sTimeN=matter1.format(time);
      MessageBook.outPutN.setText(sTimeN);
     
     /* while(true){
        String sTimeT=matter2.format(time);
        MessageBook.outPutT.setText(sTimeT);
       
      }  */
      
     }
     
     
    }
    
                                          //监视采单栏中的版本所触发的事件
    class MnuEdi implements ActionListener{
     public void actionPerformed(ActionEvent ae){
      JOptionPane.showMessageDialog(null,"版本:   V 1.001 /n 如有任何疑问请发送邮件到:/n lingyun8412@163.com/n 我们将真诚的为你解答/n 电子科技大学成都学院软件工程第50组/n谢谢使用!/nCopyright OnceTry@2007",
        "版本",JOptionPane.INFORMATION_MESSAGE);
      
     }
    }
   
 
                                          //处理关闭按钮事件退出程序。
  class ButtonExitClick implements ActionListener{
                              
        public void actionPerformed(ActionEvent e){
                System.exit(0);
  }
       
 }
   
                                          //添加界面
    class Accession extends Panel implements ActionListener{
   private static boolean bSign=false;//用来标志是否有输入错误
    static Choice sortCho;
    private Button button;
    static TextField tfName;
      static CheckboxGroup cgSex;
    static TextField tfTelep;
    static TextField tffTel;
    static TextField tfMobile;
    static TextField tfqq;
    static TextField tfEmail;
      static TextField tfAddress;
   private Button bEnsure,bEnterAgain;
   private  Panel accPanel;
   public static boolean minHaiLee=true;
   public  static    Checkbox cg1;
     public  static    Checkbox cg2;
                           //添加面板上的按纽 文本框
   private Button bAcEnsure;             
   private TextField tfAc;
                         
                  
  
   Accession(){        //构造函数
    super();
    setSize(550,400);
    setLayout(null);
    
    Panel pan1=new Panel();
    pan1.setSize(350,30);
    pan1.setLocation(0,0);
          
    pan1.setLayout(null);
    
    Label lsort=new Label("类别:");
    lsort.setSize(50,20);
    lsort.setLocation(0,0);
    pan1.add(lsort);
                                   //添加一个下拉列表    
    sortCho=new Choice();
 
    sortCho.setLocation(90,0);
    sortCho.setSize(130,20);
    pan1.add(sortCho);       
                               //用数据库的信息反添下拉列表
    String sfsortCho="select distinct 关系 from 通讯簿";
    String sResult=conection(sfsortCho,3);
    StringTokenizer st=new StringTokenizer(sResult," ");
    do{
     String nn=st.nextToken();
    sortCho.addItem(nn);
    }while(st.hasMoreTokens());
    
    
        
                              //增加一个添加类的按纽
    button=new Button("添加类别");
    button.setSize(90,23);
    button.setLocation(240,5);
    pan1.add(button);
    add(pan1);               //把pan1加入到
    button.addActionListener(this);
                                 //输入姓名 
        Label lname=new  Label("姓名:");
    lname.setSize(50,20);
    lname.setLocation(0,40);
    add(lname);
    tfName = new TextField(15);
    tfName.setSize(130,20);
    tfName.setLocation(90,40);
    add(tfName);
    tfName.addActionListener(new PressEnter());
                              ///性别
    Label lsex=new Label("性别:");
    lsex.setSize(50,20);
    lsex.setLocation(0,80);
    add(lsex);
    cgSex=new CheckboxGroup();
         cg1=new Checkbox("男",cgSex,true);
         cg2=new Checkbox("女",cgSex,false);
        cg1.setSize(40,20);
        cg2.setSize(40,20);
    cg1.setLocation(100,80);
    cg2.setLocation(150,80);
    this.add(cg1);
    this.add(cg2); 
                       //添加办公电话  
    Label ltelep=new Label("办公电话:");
    ltelep.setSize(80,20);
    ltelep.setLocation(0,120);
    add(ltelep);
    tfTelep=new TextField(10);
    tfTelep.setSize(130,20);
    tfTelep.setLocation(90,120);
    add(tfTelep);
    tfTelep.addActionListener(new PressEnter());
                    //添加移动电话
    Label lmobile=new Label("移动电话:");
    lmobile.setSize(80,20);
    lmobile.setLocation(0,160);
    add(lmobile);
    tfMobile=new TextField(10);
    tfMobile.setSize(130,20);
    tfMobile.setLocation(90,160);
    add(tfMobile);
    tfMobile.addActionListener( new PressEnter());
                      //添加家庭电话
    Label lfTel=new Label("家庭电话:");
    lfTel.setSize(80,20);
    lfTel.setLocation(0,200);
    add(lfTel);
    tffTel=new TextField(10);
    tffTel.setSize(130,20);
    tffTel.setLocation(90,200);
        add(tffTel);
        tffTel.addActionListener(new PressEnter());   
                     // 添加qq 号
    Label lqq=new Label("QQ号:");
    lqq.setSize(80,20);
    lqq.setLocation(0,240);
    add(lqq);
        tfqq=new TextField(10);
        tfqq.setSize(130,20);
        tfqq.setLocation(90,240);
        add(tfqq);
        tfqq.addActionListener(new PressEnter());
                         //电子邮箱
        Label lemail=new Label("电子邮箱:");
        lemail.setSize(80,20);
        lemail.setLocation(0,290);
        add(lemail);
        tfEmail=new TextField(10);
        tfEmail.setSize(130,20);
        tfEmail.setLocation(90,290);
        add(tfEmail);
        tfEmail.addActionListener(new PressEnter());   
                    //联系地址
    Label laddress=new Label("联系地址:");
    laddress.setSize(80,20);
    laddress.setLocation(0,340);
    add(laddress);
    tfAddress=new TextField(10);
    tfAddress.setSize(130,20);
    tfAddress.setLocation(90,340);
    add(tfAddress);
    tfAddress.addActionListener( new PressEnter());
                           //添加确定和从新输入的按钮
        bEnsure=new Button("确定");
        bEnsure.setSize(90,23);
        bEnsure.setLocation(240,340);
        add(bEnsure);
        bEnterAgain=new Button("从新输入"); 
        bEnterAgain.setSize(90,23);
        bEnterAgain.setLocation(380,340) ;
        add(bEnterAgain); 
    bEnsure.addActionListener(this);
    bEnterAgain.addActionListener(this);
                                 //设置添加类的面板
      accPanel=new Panel();
      accPanel.setLayout(null);
      accPanel.setSize(200,140);
      accPanel.setLocation(240,40) ;
      accPanel.setVisible(false);
      accPanel.setBackground(Color.pink);
      add(accPanel);
     
      tfAc=new TextField(10);
      tfAc.setSize(130,20);
      tfAc.setLocation(10,40);
      accPanel.add(tfAc);
     
      bAcEnsure=new Button("确定");
      bAcEnsure.setSize(55,20);
      bAcEnsure.setLocation(45,75);
      accPanel.add(bAcEnsure);
      bAcEnsure.addActionListener(this);
     
      Label bbb=new Label("请输入新类别的名字:");
      bbb.setSize(120,20);
      bbb.setLocation(0,0);
      accPanel.add(bbb);
     
     
     
                                      
    setBackground(Color.pink);
    this.validate();                         
     }
                                          //处理按纽所触发的事件
    public void actionPerformed(ActionEvent e){
   
       
           
      if(e.getSource()==bEnsure){    //响应确定按纽的事件     
         
          if(tfName.getText().equals("")){    //检测对话框中是否有非法输入
              bSign=true;
              JOptionPane.showMessageDialog(this,"姓名不能为空!","警告",JOptionPane.WARNING_MESSAGE); 
          }
         String name=tfName.getText();
            String stfTelep=tfTelep.getText();
         bSign=detectFun(stfTelep,"办公电话应为数字!!",1);
          
         String stfMobile=tfMobile.getText();
         bSign=detectFun(stfMobile,"移动电话应为数字!!",1);
        
         String stffTel=tffTel.getText();
         bSign=detectFun(stffTel,"家庭电话输入有误!!",1);
        
        
         String stfqq=tfqq.getText();
         bSign=detectFun(stfqq,"QQ应为数字!!",1);
        
         String stfAddress=tfAddress.getText();
         bSign=detectFun(stfAddress,"地址栏中输入非法字符!!",2);
         
         String stfEmail=tfEmail.getText();
         bSign=detectFun(stfEmail,"Email 地址的格式不正确!!",3);
                                          //把信息添加到数据库中
       
         if(bSign==false){
          String scgSex=cgSex.getSelectedCheckbox().getLabel();
          String ssortCho=sortCho.getSelectedItem();
              String  string="";
             if(minHaiLee==true){
            
                  string="INSERT INTO 通讯簿 VALUES (" +"'"+ name +"'"+","+ "'"+ scgSex +"'"
                        +"," +"'"+ stfTelep+"'"+","+ "'"+ stfMobile+"'"+","+"'"+ stffTel +"'"+","+"'"
                        + stfqq+"'"+"," +"'"+stfEmail+"'"+","+"'"+stfAddress+"'"+","+"'"+ ssortCho +"'"+")";
             }else{
                 string="update 通讯簿 set "+"性别="+"'"+ scgSex +"'"+","+"办公电话="+"'"+stfTelep+"'"+","+
                                "移动电话="+ "'"+stfMobile+"'"+","+"家庭电话="+"'"+ stffTel+"'" +","+"QQ=" +"'"+ stfqq+"'"+","+
                                 "Email=" +"'"+stfEmail+"'"+","+"联系地址="+"'"+stfAddress+"'"+","+"关系="+"'"+ ssortCho +"'"
                                 +"where 姓名="+"'"+ name +"'";
                 minHaiLee=true;
             }
             conection(string,1);     //调用连接数据库函数
            
                       //清空文本框中的内容
             tfName.setText("");
            tfTelep.setText("");
            tfMobile.setText("");
            tffTel.setText("");
            tfqq.setText("");
            tfEmail.setText("");
            tfAddress.setText("");
          
             JOptionPane.showMessageDialog(this,"^-^ 信息添加成功 ^-^","成功",JOptionPane.WARNING_MESSAGE); 
         } 
       
       }
                                    //响应从新输入的按纽所触发的事件
       if(e.getSource()==bEnterAgain){
         tfName.setText("");
         tfTelep.setText("");
         tfMobile.setText("");
         tffTel.setText("");
         tfqq.setText("");
         tfEmail.setText("");
         tfAddress.setText("");
        
       }                           //创建新的类型按纽所触发的事件
       if(e.getSource()==button){
           accPanel.setVisible(true);
          
        }
                                   //响应创建新类的确定按纽所触发的事件 
       if(e.getSource()==bAcEnsure){
        String s=tfAc.getText();
          boolean b3=detectFun(s,"命名出错!!",2);
          if(b3==false){
            if(!s.equals("")){
            // sortCho.add(s);
             sortCho.addItem(s);
                tfAc.setText("");
                accPanel.setVisible(false);
            }else{
              accPanel.setVisible(false);
            }
         
           
          }
       }
   
     }   
                                            //连接数据库函数 n=1检测是否为数字n=2时检测是否为数字或字符
                                            //n=3时检测email输入中格式是否正确
    public static  String conection(String conString,int n) {
         ResultSet rs=null;
         String kkey="";
        
         try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
         }catch(ClassNotFoundException t){
          
            JOptionPane.showMessageDialog(null,t,"连接失败",JOptionPane.WARNING_MESSAGE);     
           }
        
        try{
            Connection con=DriverManager.getConnection("jdbc:odbc:Messagerbook","lingyun","123123");
            Statement  sta=con.createStatement();
            if(n==1){
             sta.executeUpdate(conString);
            
            }    
              
               if(n==2){
                  rs=sta.executeQuery(conString);
                  rs.next();   //无效的游标状态指resultset返回的是第一列前的一行
                                //所以要下移一行
                  kkey=rs.getString(1);
                  kkey=kkey.trim();
               }
              
               if(n==3){
                  rs=sta.executeQuery(conString);
                 
                  while(rs.next()){
                      kkey+=rs.getString(1);                  
                      kkey=kkey.trim();
                      kkey=kkey+" ";
                    }
                    
               } 
               if(n==4){
                  rs=sta.executeQuery(conString);
                  rs.next();
                  String sfind="";
                  for(int i=1;i<10;i++){
                     sfind=rs.getString(i);     //嘿嘿  此处可以不消除读出字符串的空格
                    
                     kkey+= sfind + ",";
                  }
                
                                }
              
               if(n==5){
                sta=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
                rs=sta.executeQuery(conString);
                rs.beforeFirst();
                rs.next();
                while(!rs.isAfterLast()){
                     
                        for(int i=1;i<10;i++){
                          String sfind=rs.getString(i);   
                          kkey+= sfind + ",";
                       }
                    rs.next();
                }
            }
  
              con.close();  
           
       }catch(SQLException  ll){
             JOptionPane.showMessageDialog(null,ll,"数据库出错",JOptionPane.WARNING_MESSAGE);
       }
              
          return (kkey);  
     }                                       
      
                                         //检测函数
       public static boolean detectFun(String s,String st,int n){
         boolean bool=false;
           
             
         if(n==1){
          if(!s.equals("")){
         
          char read[]=s.toCharArray();
          for(int i=0;i<read.length;i++){
                           if(!Character.isDigit(read[i])&&read[i]!='-'){
                             bool=true;
                             break;
                           }
                            
                        }   
                       if(bool==true){
                          JOptionPane.showMessageDialog(null,st,"警告",JOptionPane.WARNING_MESSAGE);
                          return (true);
                       }else
                          return (false);  
                        
            }
          }else if(n==2){
        if(!s.equals("")){
        char read[]=s.toCharArray();
        
        bool=false;
        for(int i=0;i<read.length;i++){
         
         boolean bo=Character.isLetterOrDigit(read[i]);
                if(!bo){
                 bool=true;
                 break;
                }
            }
            if(bool==true){
             
              JOptionPane.showMessageDialog(null,st,"警告",JOptionPane.WARNING_MESSAGE);
              return(true);
          }else
              return false;
         } 
         }else{
         if(!s.equals("")){
         char read[]=s.toCharArray();
         bool=true;
         for(int i=0;i<read.length;i++){
         if(read[i]=='@'){
         
             bool=false;
                 break;
                }
            }
            if(bool==true){
             
              JOptionPane.showMessageDialog(null,st,"警告",JOptionPane.WARNING_MESSAGE);
              return(true);
          }else
             return(false);
        }
      } 
    return (bSign);
    } 
  
   }
   
 
                              
 
                                         //回车事件处理,焦点移动
    class PressEnter implements ActionListener{
     public void actionPerformed(ActionEvent e){
   Component c=(Component)e.getSource();
   c.transferFocus();
   
        }
    } 
  
  
                                      //欢迎界面
    class Interface extends Panel{
         Font fo;
         Interface(){
            super();
           
            this.setBackground(Color.pink);
            this.setSize(550,400);
            this.setLayout(null);
            fo=new Font("宋体",Font.ITALIC,30);
            Label lWelcome=new Label("欢迎进入通讯簿管理系统");
            lWelcome.setFont(fo);
            lWelcome.setSize(340,50);
            lWelcome.setLocation(110,75);
            add(lWelcome);
            Label lname=new Label("李敏海 ");
            Label lname1=new Label("何志方  李彬  吴煜峰");
            Label lname2=new Label("刘富益  李琨  鲍春宇");
            fo=new Font("宋体",Font.ITALIC,18);
            lname.setFont(fo);
            lname.setSize(60,20);
            lname.setLocation(220,170);
            add(lname);
           
            lname1.setFont(fo);
            lname1.setSize(170,20);
            lname1.setLocation(250,200);
            add(lname1);
           
            lname2.setFont(fo);
            lname2.setSize(170,20);
            lname2.setLocation(280,230);
            add(lname2);
           
            Label lgn=new Label("OnceTry开发小组");
            lgn.setFont(new Font("宋体",Font.CENTER_BASELINE,20));
            lgn.setSize(250,25);
            lgn.setLocation(170,320);
            add(lgn);
           
            validate();
          
           }    
     } 
                                        //设置密码界面
    class SetKey extends Panel implements ActionListener{
     private TextField tfNewKey;
     private TextField tfKeyAgain;
     private TextField tfOldKey;
     private Button bKeyEnsure;
     private Button bHideEnsure;
     private Button bAmend;
     private Panel panel1;
     
     SetKey(){
          super();
          this.setSize(550,400);
          this.setLayout(null);
          this.setBackground(Color.pink);
         
          Label ltitle=new Label("密 码 管 理");
          ltitle.setFont(new Font("宋体",Font.BOLD,20));
          ltitle.setSize(120,30);
          ltitle.setLocation(0,50);
          add(ltitle);
           
          panel1=new Panel();
          panel1.setLayout(null);
           panel1.setSize(260,30);
           panel1.setLocation(0,80);
           panel1.setVisible(false);
           panel1.setBackground(Color.pink);
           add(panel1);
          
                                             //旧密码的文本框
           Label lOldKey=new Label("请输入旧密码:");
           lOldKey.setSize(80,20);
           lOldKey.setLocation(0,0);
           panel1.add(lOldKey);
           tfOldKey=new TextField(10);
           tfOldKey.setSize(130,20);
           tfOldKey.setLocation(90,0);
           tfOldKey.setEchoChar('*');
           panel1.add(tfOldKey);
           tfOldKey.addActionListener(new PressEnter());
                                           //新密码框
           Label lNewKey=new Label("请输入新密码:");
           lNewKey.setSize(80,20);
           lNewKey.setLocation(0,130);
           add(lNewKey);
           tfNewKey=new TextField(10);
           tfNewKey.setSize(130,20);
           tfNewKey.setLocation(90,130);
           tfNewKey.setEchoChar('*');
           add(tfNewKey);
           tfNewKey.addActionListener(new PressEnter());
                                         //确认密码
          Label lensure=new Label("请从新输入:");
           lensure.setSize(80,20);
           lensure.setLocation(0,180);
           add(lensure);
           tfKeyAgain=new TextField(10);
           tfKeyAgain.setSize(130,20);
           tfKeyAgain.setLocation(90,180);
           tfKeyAgain.setEchoChar('*');
           add(tfKeyAgain);
           tfKeyAgain.addActionListener(new PressEnter());
                                        //添加确定按钮
       bKeyEnsure=new Button("确定");
       bKeyEnsure.setSize(60,20) ;
       bKeyEnsure.setLocation(70,250);
       add(bKeyEnsure);
       bKeyEnsure.addActionListener(this);
                               
       bHideEnsure=new Button("确定");
       bHideEnsure.setSize(60,20) ;
       bHideEnsure.setLocation(70,250);
       bHideEnsure.setVisible(false);
       add(bHideEnsure);
       bHideEnsure.addActionListener(this);
      
       bAmend=new Button("修改");
       bAmend.setSize(60,20) ;
       bAmend.setLocation(170,250);
       add(bAmend);
       bAmend.addActionListener(this);
      
      
      
        }
     
     public void actionPerformed(ActionEvent e){
        String strKey="select 密码 from Managerkey" ;
        String sOldKey=Accession.conection(strKey,2);   //存储数据库中已经存在的密码
       
        if(e.getSource()==bKeyEnsure){
           
           
          
           if(sOldKey.equals("")){
             keyDetect();
            
             }else{
              
               JOptionPane.showMessageDialog(null,"密码已存在请点击修改按纽进行密码设置!!","警告",JOptionPane.WARNING_MESSAGE);
              
             }
        }
          
        if(e.getSource()==bHideEnsure){
          String stfOldKey=tfOldKey.getText();
         
          if(stfOldKey.equals(sOldKey)){
           keyDetect();
           tfOldKey.setText("");
           bHideEnsure.setVisible(false);
           bKeyEnsure.setVisible(true);
          }else{
             JOptionPane.showMessageDialog(null,"输入的旧密码不正确!!","警告",JOptionPane.WARNING_MESSAGE);  
          }
        }  
           
         
      
      
          
           if(e.getSource()==bAmend){
              tfNewKey.setText("");
              tfKeyAgain.setText("");
              panel1.setVisible(true);
              bKeyEnsure.setVisible(false);
              bHideEnsure.setVisible(true);
           }
        
     }
     
        public void keyDetect(){
          String strK=null;
             String stfNewKey=tfNewKey.getText();
       Accession.detectFun(stfNewKey,"新密码首次输入中出现了非法字符!!",2);
       String stfKeyAgain=tfKeyAgain.getText();
       Accession.detectFun(stfKeyAgain,"新密码第二次输入中出现了非法字符!!",2);
       if(stfNewKey.equals(stfKeyAgain)){
           strK="update ManagerKey set 密码="+ stfNewKey;
           Accession.conection(strK,1);
           JOptionPane.showMessageDialog(null,"密码设置成功!!","成功",JOptionPane.WARNING_MESSAGE);
            panel1.setVisible(false);
            tfNewKey.setText("");
            tfKeyAgain.setText("");
          
       }else{
           JOptionPane.showMessageDialog(null,"两次输入的密码不一致!!","警告",JOptionPane.WARNING_MESSAGE);  
          
       }     
        }
     
    }
                                      //查询界面
    class Find extends Panel implements ActionListener{
     
      private TextField   schName;
      private TextField   schSex;
      private TextField   delpwd,pwd;
      private TextArea    schResult;
         private Choice      chProvice;
      private Button      btnSearch,btnDelate,btnUpdate,bDelOk,bDelNo;
      private Button      btnDelEn;
      private Panel       delPanel,delpw;
         private Button      btnDelEnsure, btnDelConcel;
      private TextField   tfdelName;
      private boolean     bbtn=false;
      Find(){
       super();
       
            setLayout(null);
            setSize(550,400);
            setBackground(Color.pink);
                                     //信息查询的标签
           Label ltitle=new Label("管理操作");
        ltitle.setFont(new Font("宋体",Font.BOLD,20));
        ltitle.setSize(120,30);
        ltitle.setLocation(0,17);
        add(ltitle);
                                             //标签
           Label l1=new Label("姓名:");
           l1.setSize(50,20);
           l1.setLocation(25,270);
           add(l1);
       
           Label l2=new Label("性别:");
           l2.setSize(50,20);
           l2.setLocation(200,270);
           add(l2);   
       
           Label l3=new Label("分组:");
           l3.setSize(50,20);
           l3.setLocation(375,270);
           add(l3);
//当要删除时,给一个验证密码的界面    
           delpw=new Panel();
           delpw.setLayout(null);
           delpw.setSize(500,200);
           delpw.setLocation(25,50);
           delpw.setVisible(false);
           delpw.validate();
           add(delpw);
       
           Label l6=new Label("请输入您的密码:");
           l6.setSize(100,20);
           l6.setLocation(80,50);
           delpw.add(l6);
       
           bDelOk=new Button("确定");
           bDelOk.setSize(50,20);
           bDelOk.setLocation(160,100);
           delpw.add(bDelOk);
           bDelOk.addActionListener(this);
       
           bDelNo=new Button("取消");
           bDelNo.setSize(50,20);
           bDelNo.setLocation(250,100);
           delpw.add(bDelNo);
           bDelNo.addActionListener(this);
          
//当要删除时,给一个输入界面       
        delPanel=new Panel();
        delPanel.setLayout(null);
        delPanel.setSize(500,200);
        delPanel.setLocation(25,50);
        delPanel.setVisible(false);
        delPanel.validate();
        add(delPanel);
       
        Label l4=new Label("请输入姓名:");
        l4.setSize(70,20);
        l4.setLocation(100,50);
        delPanel.add(l4);
       
        tfdelName=new TextField(10);
        tfdelName.setSize(150,20);
        tfdelName.setLocation(200,50);
        delPanel.add(tfdelName);
       
        btnDelEnsure=new Button("确定");
        btnDelEnsure.setSize(50,20);
        btnDelEnsure.setLocation(160,100);
        delPanel.add(btnDelEnsure);
        btnDelEnsure.addActionListener(this);
       
        btnDelEn=new Button("确定");
        btnDelEn.setSize(50,20);
        btnDelEn.setLocation(160,100);
        delPanel.add(btnDelEn);
        btnDelEn.setVisible(false);
        btnDelEn.addActionListener(this);
       
        btnDelConcel=new Button("取消");
        btnDelConcel.setSize(50,20);
        btnDelConcel.setLocation(250,100);
        delPanel.add(btnDelConcel);
        btnDelConcel.addActionListener(this);

     
 

//设置下拉菜单          
          chProvice=new Choice();              
          chProvice.setSize(100,50);
          chProvice.setLocation(425,270);
          add(chProvice);
       
         
          String sfsortCho="select distinct 关系 from 通讯簿";
      String sResult=Accession.conection(sfsortCho,3);
      StringTokenizer st=new StringTokenizer(sResult," ");
      do{
     String nn=st.nextToken();
    chProvice.addItem(nn);
        }while(st.hasMoreTokens());
 
    
       
//文本输入框TextFiled

         schName=new TextField(10);
         schName.setSize(100,20);
         schName.setLocation(75,270);
         add(schName);
         schName.addActionListener(new PressEnter());
         
         schSex=new TextField(10);
         schSex.setSize(100,20);
         schSex.setLocation(250,270);
         add(schSex);
         schSex.addActionListener(new PressEnter());
    
      
        delpwd=new TextField(10);
        delpwd.setSize(140,20);
        delpwd.setLocation(200,50);
        delpwd.setEchoChar('*');
        delpw.add(delpwd);  
        delpwd.addActionListener(new PressEnter());
         
       
//多行文本TextArea
        schResult=new TextArea("",10,100);
        schResult.setSize(500,200);
        schResult.setLocation(25,50);
        schResult.setFont(new Font("宋体",Font.BOLD,15));//设置字体
        schResult.setEditable(false);
        add(schResult);
       

//按钮
        btnSearch=new Button("查找");
        btnSearch.setLocation(35,350);
        btnSearch.setSize(100,30);
        add(btnSearch);
 
        //设置保存按钮的事件监听器。
        btnSearch.addActionListener(this);
 
        btnDelate=new Button("删除");
        btnDelate.setLocation(225,350);
        btnDelate.setSize(100,30);
        add(btnDelate);

        //设置删除按钮的事件监听器。
        btnDelate.addActionListener(this); 
       
        btnUpdate=new Button("修改");
        btnUpdate.setLocation(425,350);
        btnUpdate.setSize(100,30);
        add(btnUpdate);
        
        //设置修改按钮的事件监听器。
        btnUpdate.addActionListener(this);
           
   }
    
 
  
 // 处理各个按钮产生的事件  
   public void actionPerformed(ActionEvent e){
   
                                           //处理查询按钮事件
       if((e.getSource()==btnSearch)){
          String sName=schName.getText();
          String sSex=schSex.getText();
          String ssql="";
          String sRalation=chProvice.getSelectedItem();
          if(!sName.equals("")){
         
               Accession.detectFun(sName,"姓名框中有非法字符!!",2);
               ssql="select * from 通讯簿 where 姓名="+"'"+sName+"'";
               sName=Accession.conection(ssql,4) ;
               if(sName.equals("")){
                 JOptionPane.showMessageDialog(null,"数据库中不存在你要查找的信息!!","查询失败",JOptionPane.WARNING_MESSAGE);
               }else{
                   writeTextArea(sName);
                   schName.setText("");
              }   
         }else if(!sSex.equals("")){
            Accession.detectFun(sSex,"性别框中有非法字符!!",2);
            ssql="select * from 通讯簿 where 性别="+"'"+sSex+"'";
            sSex=Accession.conection(ssql,5);
            writeTextArea(sSex);
            schSex.setText("");
         }else {
          ssql="select * from 通讯簿 where 关系="+"'"+sRalation+"'";
          sRalation=Accession.conection(ssql,5);
          writeTextArea(sRalation);
         }
        
        
       
     
     } 
                                       //处理删除按钮事件:
      if(e.getSource()==btnDelate){
       delpw.setVisible(true);
         bbtn=false;
      schName.setEditable(false);
      schSex.setEditable(false);
      chProvice.setEnabled(false);
         btnDelate.setEnabled(false);
      btnSearch.setEnabled(false);
      btnUpdate.setEnabled(false);  
    }  
   
//处理要删除的验证信息
                                  //与数据库连接处理密码的验证信息
         if(e.getSource()==bDelOk){
             String strKey="select 密码 from ManagerKey" ;
       String sOldKey=Accession.conection(strKey,2);
             strKey = delpwd.getText();
             if(sOldKey.equals(strKey)){
              delpw.setVisible(false);
              delPanel.setVisible(true);
              delpwd.setText("");
            
              if(bbtn==false){   //用bbtn 来监视 在delpael上显示的按纽
                btnDelEnsure.setVisible(true);
                btnDelEn.setVisible(false);
              }else{
               btnDelEnsure.setVisible(false);
               btnDelEn.setVisible(true);
              }
                 
                
             } else{
                 JOptionPane.showMessageDialog(null,"输入密码不正确!!","密码错误",JOptionPane.WARNING_MESSAGE); 
             }                   
     }
     
      if(e.getSource()==bDelNo){
      
        delpw.setVisible(false);
        delpwd.setText("");
        schName.setEditable(true);
      schSex.setEditable(true);
      chProvice.setEnabled(true);
      btnDelate.setEnabled(true);
      btnSearch.setEnabled(true);
      btnUpdate.setEnabled(true);
              
       }
     
     
     
     
        if(e.getSource()==btnDelEnsure){
             String stfDelName=tfdelName.getText();
             if(!stfDelName.equals("")){
            
             boolean bb=Accession.detectFun(stfDelName,"姓名框中输入了非法字符!!",2);
             if(bb==false){
              String  sDelSql="delete from 通讯簿 where 姓名="+"'"+stfDelName+"'";
              Accession.conection(sDelSql,1);
              JOptionPane.showMessageDialog(null,"信息已经删除!!","删除成功",JOptionPane.WARNING_MESSAGE);
             tfdelName.setText("");
             delPanel.setVisible(false);
            
             schName.setEditable(true);
          schSex.setEditable(true);
          chProvice.setEnabled(true);
          btnDelate.setEnabled(true);
          btnSearch.setEnabled(true);
          btnUpdate.setEnabled(true);
            
         }
        }else{
         JOptionPane.showMessageDialog(null,"姓名不能为空!!","删除",JOptionPane.WARNING_MESSAGE);
        } 
     }
      
     if(e.getSource()==btnDelConcel) {
      delPanel.setVisible(false);
      schName.setEditable(true);
      schSex.setEditable(true);
      chProvice.setEnabled(true);
      btnDelate.setEnabled(true);
      btnSearch.setEnabled(true);
      btnUpdate.setEnabled(true);
     }
      
      if(e.getSource()==btnDelEn){
         Accession.minHaiLee=false;   //用来控制数据库操作的语句
         String stfDelName=tfdelName.getText();
              if(!stfDelName.equals("")){
            
                   boolean bb=Accession.detectFun(stfDelName,"姓名框中输入了非法字符!!",2);
                if(bb==false){
                   String  sAmendSql="select * from 通讯簿 where 姓名="+"'"+stfDelName+"'";
                   String sAmend=Accession.conection(sAmendSql,4);
                   StringTokenizer st=new StringTokenizer(sAmend,",");
                 for(int i=1;i<10;i++){    //把读出的字符串反添入添加的界面中进行信息的修改
               String ac=st.nextToken().trim();
               if(ac.equals(""))
                    ac="" ;
               switch(i){
                case 1:Accession.tfName.setText(ac);
                       break;
                case 2:if(ac.equals("男"))
                          Accession.cg1.setState(true);
                          else
                                  Accession.cg2.setState(true);
                       break;
                case 3:Accession.tfTelep.setText(ac);
                       break;
                case 4:Accession.tfMobile.setText(ac);
                       break;
                case 5:Accession.tffTel.setText(ac);
                       break;
                case 6:Accession.tfqq.setText(ac);
                       break;
                case 7:Accession.tfEmail.setText(ac);
                       break;
                case 8:Accession.tfAddress.setText(ac);
                       break;
                case 9:Accession.sortCho.select(ac);
                       break;
               }
               
              }
                  
              MessageBook.card.show(MessageBook.panel,"c");          
             tfdelName.setText("");
             delPanel.setVisible(false);
            
             schName.setEditable(true);
          schSex.setEditable(true);
          chProvice.setEnabled(true);
          btnDelate.setEnabled(true);
          btnSearch.setEnabled(true);
          btnUpdate.setEnabled(true);
            
         }
        }else{
         JOptionPane.showMessageDialog(null,"姓名不能为空!!","删除",JOptionPane.WARNING_MESSAGE);
        } 
       
      }
      
              
    
            
    
        
        

 //处理修改按钮事件:
      if(e.getSource()==btnUpdate){
       delpw.setVisible(true);    //置输入密码的界面为true
       bbtn=true;
      schName.setEditable(false);
      schSex.setEditable(false);
      chProvice.setEnabled(false);
      btnDelate.setEnabled(false);
      btnSearch.setEnabled(false);
      btnUpdate.setEnabled(false);  
      }
 
 
//处理要修改的验证信息   
   
   }
              
                                        //向文本区中添加查询结果的函数
       public  void writeTextArea(String swrite){
            StringTokenizer st=new StringTokenizer(swrite,",");
            schResult.setText("");
        int n=0;   
            do{
             
             if(n%9==0){
               schResult.append("/n"); 
            }
             String nn=st.nextToken();
            schResult.append(nn);
            n++;
            }while(st.hasMoreTokens());
    
       }
   
      } 

 

(未完待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值