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

📄 mainframe.java

📁 GUI的通讯录
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        
        mFind.setText("\u67e5\u627e");
        mFind.addActionListener(new java.awt.event.ActionListener(){
        	public void actionPerformed(java.awt.event.ActionEvent evt){
        		mFindActionPerformed(evt);
        	}
        });
        
        mOpt.add(mFind);
        
        jMenuBar1.add(mOpt);
        
        mHelp.setText("\u5e2e\u52a9");
        mAbout.setText("\u5173\u4e8e");
        mAbout.addActionListener(new java.awt.event.ActionListener(){
        	public void actionPerformed(java.awt.event.ActionEvent evt){
        		mAboutActionPerformed(evt);
        	}
        });
        
        mHelp.add(mAbout);
        
        jMenuBar1.add(mHelp);
        
        setJMenuBar(jMenuBar1);
        
        pack();
	}
    
    private void mAboutActionPerformed(java.awt.event.ActionEvent evt){
    	JOptionPane.showConfirmDialog(this,
    			"通讯录--《Java程序设计大学教程》课程设计程序" +
    			"\n 版权归该书作者所有Copyright2005-2006 LiuYi","关于",
    			JOptionPane.DEFAULT_OPTION,
    			JOptionPane.INFORMATION_MESSAGE);
    }
    
    private void mDeleteActionPerformed(java.awt.event.ActionEvent evt){
    	delete();
    }
    
    private void mFindActionPerformed(java.awt.event.ActionEvent evt){
    	find();
    }
    
    private void mNewActionPerformed(java.awt.event.ActionEvent evt){
    	add();
    }
    
    private void mSaveActionPerformed(java.awt.event.ActionEvent evt){
    	save();
    }
    
    private void mOpenActionPerformed(java.awt.event.ActionEvent evt){
    	open();
    }
    
    private void btnSavaActionPerformed(java.awt.event.ActionEvent evt){
    	saveEdited();
    }
    
    private void btnFindActionPerformed(java.awt.event.ActionEvent evt){
    	find();
    }
    
    private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt){
    	delete();
    }
    
    private void nameListMouseClicked(java.awt.event.MouseEvent evt){
    	p=(Person)(nameList.getSelectedValue());
    	txtName.setText(p.name);
    	txtZip.setText(p.zip);
    	txtAdd.setText(p.address);
    	txtPhone.setText(p.telephone);
    	txtCellphone.setText(p.cellphone);
    	txtEmail.setText(p.email);
    }
    
    private void btnNewActionPerformed(java.awt.event.ActionEvent evt){
    	add();
    }
     
    public static void main(String args[]){
    	java.awt.EventQueue.invokeLater(new Runnable(){
    		public void run(){
    			new MainFrame().setVisible(true);
    		}
    	});
    }
 
    //删除记录
    private void delete(){
    	people.delete(nameList.getSelectedValue());
    	nameList.setListData(people.toArray());
    	txtName.setText("");
        txtZip.setText("");
        txtAdd.setText("");
        txtPhone.setText("");
        txtCellphone.setText("");
        txtEmail.setText("");
    }
    
    //查找记录
    private void find(){
    	String nam=JOptionPane.showInputDialog("请输入要查询的姓名");
    	p=people.find(nam);
    	if(p==null){
    		JOptionPane.showConfirmDialog(this,"查无此人!","查询结果",
    				JOptionPane.DEFAULT_OPTION,
    				JOptionPane.INFORMATION_MESSAGE);
    	}else{
    		txtName.setText(p.name);
            txtZip.setText(p.zip);
            txtAdd.setText(p.address);
            txtPhone.setText(p.telephone);
            txtCellphone.setText(p.cellphone);
            txtEmail.setText(p.email);
    	}
    }
    
    //新增记录
    private void add(){
    	people.addnew(new Person(txtName.getText(),
    			txtZip.getText(),txtAdd.getText(),
    			txtPhone.getText(),txtCellphone.getText(),
    			txtEmail.getText()));
    	nameList.setListData(people.toArray());
    }
    
    //打开文件
    private void open(){
    	choice = fileChooser.showOpenDialog(this);
    	if(choice==JFileChooser.APPROVE_OPTION){
    		chosenFile=fileChooser.getSelectedFile();
    	}
    	deserializePeople(chosenFile.getAbsolutePath());
    }
    
    //保存文件
    private void save(){
    	choice = fileChooser.showSaveDialog(this);
    	if(choice==JFileChooser.APPROVE_OPTION){
    	    chosenFile=fileChooser.getSelectedFile();
    	    serializePeople(people,chosenFile.getAbsolutePath());
        }
    }
    
    //保存更改的记录
    private void saveEdited(){
    	p=(Person)(nameList.getSelectedValue());
    	p.name=txtName.getText();
    	p.zip=txtZip.getText();
    	p.address=txtAdd.getText();
    	p.telephone=txtPhone.getText();
    	p.cellphone=txtCellphone.getText();
    	p.email=txtEmail.getText();
    }
    
    //串行化people对象数据
    private void serializePeople(People people,String filename){
    	try {
    		FileOutputStream outStream=new FileOutputStream(filename);
    		ObjectOutputStream out=new ObjectOutputStream(outStream);
    		out.writeObject(people);
    		out.flush();
    		out.close();
    	}catch(Exception e){
    		System.out.println(e);
    	}
    }
    
    //去串行化people对象数据
    private void deserializePeople(String filename){
    	people=null;
    	try{
    		FileInputStream inStream=new FileInputStream(filename);
    		ObjectInputStream in=new ObjectInputStream(inStream);
    		people=(People)in.readObject();
    		in.close();
    		nameList.setListData(people.toArray());
    	}catch(Exception e){
    		System.out.println(e);
    	}
    }
    
    //变量声明-不进行修改
    private javax.swing.JButton btnDelete;
    private javax.swing.JButton btnFind;
    private javax.swing.JButton btnNew;
    private javax.swing.JButton btnSave;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JLabel lblAdd;
    private javax.swing.JLabel lblCellphone;
    private javax.swing.JLabel lblEMail;
    private javax.swing.JLabel lblName;
    private javax.swing.JLabel lblPhone;
    private javax.swing.JLabel lblZip;
    private javax.swing.JMenuItem mAbout;
    private javax.swing.JMenuItem mDelete;
    private javax.swing.JMenuItem mExit;
    private javax.swing.JMenu mFile;
    private javax.swing.JMenuItem mFind;
    private javax.swing.JMenu mHelp;
    private javax.swing.JMenuItem mNew;
    private javax.swing.JMenuItem mOpen;
    private javax.swing.JMenu mOpt;
    private javax.swing.JMenuItem mSave;
    private javax.swing.JList nameList;
    private javax.swing.JTextField txtAdd;
    private javax.swing.JTextField txtCellphone;
    private javax.swing.JTextField txtEmail;
    private javax.swing.JTextField txtName;
    private javax.swing.JTextField txtPhone;
    private javax.swing.JTextField txtZip;
    
    //变量声明结束
    
    private Person p;
    private People people=new People();
    private File chosenFile;
    private int choice;
    private JFileChooser fileChooser=new JFileChooser();
}







public class People extends ArrayList implements Serializable {

	public void addnew(Person p){
		this.add(p);
	}
	
    public void delete(Object p){
    	this.remove(p);
    }
    public Person find(String nam){
    	Person p=null;
    	for(int i=0;i<this.size();i++){
    		p=(Person)(this.get(i));
    		if(p.name.equals(nam)){
    			break;
    		}else{
    			p=null;
    		}
    	}
    	return p;
    }
}







class Person implements Serializable{
    public Person(String n,String z,String a,String t,String c,String e){
    	name=n;
    	zip=z;
    	address=a;
    	telephone=t;
    	cellphone=c;
    	email=e;
    }

	public String toString(){
		return name;
	}

    public String name;
    public String zip;
    public String address;
    public String telephone;
    public String cellphone;
    public String email;
}

⌨️ 快捷键说明

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