⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addressbook.java

📁 一个比较烂的通讯录。
💻 JAVA
字号:
import java.io.*;
import java.awt.*;
import java.awt.event.*;

public class addressbook
{
  public static void main(String args[])
  {
     new myfile();
   }
}

class myfile extends Frame implements ActionListener
{
   TextArea ta;
   TextField name,email,phone,address,team;
   Button bnext,quit,bpre,bnew,bsave,bdisp,bdelt,bdel,bmod,bsearch;
   Label ln,le,lp,la,lt,ltm;
   Choice mych;
   List liteam;

   info myinfo;
   int n,k,j;
   File myf;
   RandomAccessFile in;
  
   myfile()
   {

     super("简易通讯录");

     myinfo=new info("同学","张三2","zhangsan2@163.com","88935047","hangzhou");
     name=new TextField(10);
     team=new TextField(10);
     email=new TextField(20);
     phone=new TextField(20);
     address=new TextField(40);
     ln=new Label("姓名:");
     le=new Label("E-MAIL:");
     lp=new Label("电话号码:");
     la=new Label("家庭住址:");
     lt=new Label("通讯录");
     ltm=new Label("组别");
     bnext=new Button("下一个");
     bpre=new Button("前一个");
     bnew=new Button("新建");
     bsave=new Button("保存");
     bdisp=new Button("显示组");
     quit=new Button("退出");
     bdelt=new Button("删除组");
     bdel=new Button("删除");
     bmod=new Button("修改");
     bsearch=new Button("查找");
     mych=new Choice();
     liteam=new List(5,false);

     bnext.addActionListener(this);
     bpre.addActionListener(this);
     bnew.addActionListener(this);
     bsave.addActionListener(this);
     quit.addActionListener(this);
     bdisp.addActionListener(this);
     liteam.addActionListener(this);
     bdelt.addActionListener(this);
     bdel.addActionListener(this);
     bmod.addActionListener(this);
     bsearch.addActionListener(this);
     
     setLayout(null);
     n=0;
     add(lt);
     lt.setBounds(155,30,480,20);
     add(ln);
     ln.setBounds(20,60,70,20);
     add(name);
     name.setBounds(100,60,100,20);
     add(ltm);
     ltm.setBounds(210,60,50,20);
     add(team);
     team.setBounds(260,60,100,20);
     add(le);
     le.setBounds(20,120,70,20);
     add(email);
     email.setBounds(100,120,150,20);
     add(lp);
     lp.setBounds(20,180,70,20);
     add(phone);
     phone.setBounds(100,180,150,20);
     add(la);
     la.setBounds(20,240,70,20);
     add(address);
     address.setBounds(100,240,240,20);
     add(bnext);
     bnext.setBounds(80,300,50,30);
     add(bpre);
     bpre.setBounds(20,300,50,30);
     add(bmod);
     bmod.setBounds(320,300,50,30);
     add(bsearch);
     bsearch.setBounds(380,300,50,30);
     add(quit);
     quit.setBounds(620,300,50,30);
     add(bnew);
     bnew.setBounds(140,300,50,30);
     add(bsave);
     bsave.setBounds(200,300,50,30);
     add(bdel);
     bdel.setBounds(260,300,50,30);
try{
     myf=new File("a.dat");
     in=new RandomAccessFile(myf,"rw");
     while(in.getFilePointer()<in.length())
     {
         myinfo.readdata(in);
         k=0;
         
         for(j=0;j<mych.getItemCount();j++)
           {
              if(myinfo.indexinfo.equals(mych.getItem(j)))
              {  k=1;}
           }
         
         if(k==0&&!myinfo.indexinfo.equals("#"))
         mych.addItem(myinfo.indexinfo);
     }
       
    }
        catch(IOException ioe)
        {
             System.err.println(ioe.toString());
        }
     add(mych);
     mych.setBounds(420,60,50,30);
     add(bdisp);
     bdisp.setBounds(520,60,50,20);
     add(bdelt);
     bdelt.setBounds(580,60,50,20);
     add(liteam);
     liteam.setBounds(420,120,180,80);
     setSize(700,400);
     show();
    }
  
   public void actionPerformed(ActionEvent e)
   {
      if(e.getSource()==liteam)
     {
         try{
           in.seek(0);
           while(in.getFilePointer()<in.length())
           {
            myinfo.readdata(in);
            if(myinfo.name.equals(liteam.getSelectedItem()))
              {
                team.setText(myinfo.indexinfo);
                name.setText(myinfo.name);
                email.setText(myinfo.email);
                phone.setText(myinfo.phone);
                address.setText(myinfo.address);              
              }
           }            
         }
        catch(IOException ioe)
        {
             System.err.println(ioe.toString());
        }
     }

      if(e.getActionCommand()=="下一个")
      {
             
       try{
           if(in.getFilePointer()<in.length())
             myinfo.readdata(in);
             while(myinfo.indexinfo.equals("#")&&in.getFilePointer()<in.length())
              myinfo.readdata(in);
           if(!myinfo.indexinfo.equals("#"))
           {
           team.setText(myinfo.indexinfo);
           name.setText(myinfo.name);
           email.setText(myinfo.email);
           phone.setText(myinfo.phone);
           address.setText(myinfo.address); 
           //lt.setText(" "+in.getFilePointer()); 
           }
          }
        catch(IOException ioe)
        {
             System.err.println(ioe.toString());
        }
       }

      if(e.getActionCommand()=="前一个")
      {
             
       try{
           if(in.getFilePointer()>200)
             {
                in.seek(in.getFilePointer()-200*2);
                myinfo.readdata(in);
                while(myinfo.indexinfo.equals("#")&&in.getFilePointer()>200)
                  {in.seek(in.getFilePointer()-200*2);
                  myinfo.readdata(in);}
                //lt.setText(" "+in.getFilePointer());
             }
           if(!myinfo.indexinfo.equals("#"))
           {
           team.setText(myinfo.indexinfo);
           name.setText(myinfo.name);
           email.setText(myinfo.email);
           phone.setText(myinfo.phone);
           address.setText(myinfo.address);
           }
          }
        catch(IOException ioe)
        {
             System.err.println(ioe.toString());
        }
       }

       if(e.getActionCommand()=="退出")
       {
           dispose();
           System.exit(0);
        }

       if(e.getActionCommand()=="新建")
       {
           team.setText("");
           name.setText("");
           email.setText("");
           phone.setText("");
           address.setText("");
        }

       if(e.getActionCommand()=="保存")
       {
         try{
           in.seek(0);
           while(in.getFilePointer()<in.length())
           {
            myinfo.readdata(in);
            k=0;
            if(myinfo.name.equals("#"))
           {in.seek(in.getFilePointer()-200);
           k=1;
           break;
           }
           }
           if(k==0)
             in.seek(in.length());
           myinfo.indexinfo=team.getText();
           myinfo.name=name.getText();
           myinfo.email=email.getText();
           myinfo.phone=phone.getText();
           myinfo.address=address.getText();
           myinfo.writedata(in);
            }
        catch(IOException ioe)
        {
             System.err.println(ioe.toString());
        }
      }

       if(e.getActionCommand()=="显示组")
       {
         try{
           in.seek(0);
           liteam.removeAll();
           while(in.getFilePointer()<in.length())
           {
            myinfo.readdata(in);
            if(myinfo.indexinfo.equals(mych.getSelectedItem()))
              liteam.add(myinfo.name);              
           }
            
         }
        catch(IOException ioe)
        {
             System.err.println(ioe.toString());
        }
      }

     if(e.getActionCommand()=="删除组")
       {
         try{
           in.seek(0);
           String temps=mych.getSelectedItem();
           liteam.removeAll();
           mych.remove(temps);
           while(in.getFilePointer()<in.length())
           {
            myinfo.readdata(in);
            if(myinfo.indexinfo.equals(temps))
              {
                myinfo.indexinfo="#";
                myinfo.name="#";
                myinfo.email="#";
                myinfo.phone="#";
                myinfo.address="#";
               in.seek(in.getFilePointer()-200);
                myinfo.writedata(in);
              }           
           }
            
         }
        catch(IOException ioe)
        {
             System.err.println(ioe.toString());
        }
      }

       if(e.getActionCommand()=="删除")
       {
         try{
           in.seek(0);
           while(in.getFilePointer()<in.length())
           {
            myinfo.readdata(in);
            if(myinfo.name.equals(name.getText()))
              {
                myinfo.indexinfo="#";
                myinfo.name="#";
                myinfo.email="#";
                myinfo.phone="#";
                myinfo.address="#";
             in.seek(in.getFilePointer()-200);
             myinfo.writedata(in);
             break;
              }             
           }
            
         }
        catch(IOException ioe)
        {
             System.err.println(ioe.toString());
        }
      }
    
      if(e.getActionCommand()=="修改")
       {
         try{
           in.seek(in.getFilePointer()-200);
           myinfo.indexinfo=team.getText();
           myinfo.name=name.getText();
           myinfo.email=email.getText();
           myinfo.phone=phone.getText();
           myinfo.address=address.getText();
           myinfo.writedata(in);
            }
        catch(IOException ioe)
        {
             System.err.println(ioe.toString());
        }
      }

       if(e.getActionCommand()=="查找")
       {
         try{
           in.seek(0);
           while(in.getFilePointer()<in.length())
           {
            myinfo.readdata(in);
           k=0;
           if(name.getText().length()>0)
            {if(myinfo.name.equals(name.getText()))
              k=1;
            else
              continue;}
           if(team.getText().length()>0)
            {
            if(myinfo.indexinfo.equals(team.getText()))
              {k=1;}
            else
              {k=0;continue;}
            }
           if(email.getText().length()>0)
            {if(myinfo.email.equals(email.getText()))
              k=1;
            else
              {k=0;continue;}}
           if(phone.getText().length()>0)
            {if(myinfo.phone.equals(phone.getText()))
              k=1;
            else
              {k=0;continue;}}
           if(address.getText().length()>0)
            {if(myinfo.address.equals(address.getText()))
              k=1;
            else
              {k=0;continue;}}
           
            if(k==1)
              {
              team.setText(myinfo.indexinfo);
              name.setText(myinfo.name);
              email.setText(myinfo.email);
              phone.setText(myinfo.phone);
              address.setText(myinfo.address);
              break;
              }   
            //lt.setText(" "+in.getFilePointer());          
           }
            
         }
        catch(IOException ioe)
        {
             System.err.println(ioe.toString());
        }
      }
   }
}
class info
{
    String indexinfo; //10
    String name; //10
    String email; //20
    String phone;  //20
    String address; //40

   public info(String i,String a,String b,String c,String d)
   {
     indexinfo=i;
     name=a;
     email=b;
     phone=c;
     address=d;
   }
  public info() {}
  public void writedata(DataOutput out) throws IOException
  {
    DataIO.writeFixedString(indexinfo,10,out);
    DataIO.writeFixedString(name,10,out);
    DataIO.writeFixedString(email,20,out);
    DataIO.writeFixedString(phone,20,out);
    DataIO.writeFixedString(address,40,out);
  }
  public void readdata(DataInput in) throws IOException
  {
    indexinfo=DataIO.readFixedString(10,in);
    name=DataIO.readFixedString(10,in);
    email=DataIO.readFixedString(20,in);
    phone=DataIO.readFixedString(20,in);
    address=DataIO.readFixedString(40,in);
  }    
}

class DataIO
{
   public static String readFixedString(int size,DataInput in) throws IOException
   {
      StringBuffer b=new StringBuffer(size);
      int i=0;
      boolean more=true;

      while(more&&i<size)
      {
        char ch=in.readChar();
        i++;
        if(ch==0)
          {
            more=false;
          }
        else
          {
            b.append(ch);
          }
       }
      in.skipBytes(2*(size-i));
      return b.toString();
    }

   public static void writeFixedString(String s,int size,DataOutput out) throws IOException
   {
     int i;
     for(i=0;i<size;i++)
     {
        char ch=0;
        if(i<s.length()) 
          ch=s.charAt(i);
        out.writeChar(ch);
     }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -