Java编写一个个人通信录程序,具有如下功能:
(1)定义一个类,包括姓名、邮政编码、通信地址等成员变量
(2)查找:根据姓名在文件中查找个人信息,如果找到则显示出来
(3)添加:向文件中写个人信息

一、class Note

package p1;import java.io.Serializable;class Note implements Serializable
{public String name;public String zip;public String address;public String telephone;public String mobile;public String email;public Note(){}}

二、class Communication

package p1;import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.jar.Attributes.Name;import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.border.Border;import org.omg.CosNaming.NamingContextPackage.NotEmpty;public class Communication extends JFrame
{//定义界面中必要的组件,包括标签、文本域、按钮等JLabel title=new JLabel("个人通信录");JLabel name=new JLabel("姓名");JLabel zip=new JLabel("邮政编码");JLabel address=new JLabel("通信地址");JLabel telephone=new JLabel("电话");JLabel mobile=new JLabel("手机");JLabel email=new JLabel("email");JTextField nametext=new JTextField();JTextField ziptext=new JTextField();JTextField addtext=new JTextField();JTextField teltext=new JTextField();JTextField mobtext =new JTextField();JTextField emailtext=new JTextField();Font font=new Font("TimersRoman",Font.ITALIC,40);//使用的字体JButton add =new JButton("添加");JButton find=new JButton("查找");JButton clear=new JButton("清空");JButton exit=new JButton("退出");ArrayList nameCardArray=new ArrayList();Communication(String s){super(s);Container cp=getContentPane();cp.setLayout(null);//给个文本输入域设置边框nametext.setBorder(BorderFactory.createLoweredBevelBorder());ziptext.setBorder(BorderFactory.createLoweredBevelBorder());addtext.setBorder(BorderFactory.createLoweredBevelBorder());teltext.setBorder(BorderFactory.createLoweredBevelBorder());mobtext.setBorder(BorderFactory.createLoweredBevelBorder());emailtext.setBorder(BorderFactory.createLoweredBevelBorder());//给各按钮添加设置边框add.setBorder(BorderFactory.createLoweredBevelBorder());find.setBorder(BorderFactory.createLoweredBevelBorder());clear.setBorder(BorderFactory.createLoweredBevelBorder());exit.setBorder(BorderFactory.createLoweredBevelBorder());title.setFont(font);//设置文本域使用的字体//设置各组件的大小title.setBounds(130, 20, 300, 60);name.setBounds(50, 100, 75, 20);nametext.setBounds(150, 100, 100, 20);zip.setBounds(50,140 ,75,20 );ziptext.setBounds(150,140 ,100,20 );address.setBounds(50,180 ,75,20 );addtext.setBounds(150,180 ,250,20 );telephone.setBounds(50,220 ,75,20 );teltext.setBounds(150,220 ,150, 20);mobile.setBounds(50,260 ,75,20 );mobtext.setBounds(150,260 ,150, 20);email.setBounds(50, 300,75,20 );emailtext.setBounds(150,300 ,250, 20);//设置按钮的位置add.setBounds(50, 360, 75,25);find.setBounds(150, 360, 75,25);clear.setBounds(250, 360, 75,25);exit.setBounds(350, 360, 75,25);add.addActionListener(new ActionListener()//将添加按钮添加按钮监听器{@Overridepublic void actionPerformed(ActionEvent e) {if(nametext.getText().equalsIgnoreCase("")){// TODO Auto-generated method stubJOptionPane.showMessageDialog(null, "无法添加名字为空的记录", "Message",JOptionPane.INFORMATION_MESSAGE);nametext.setText("");ziptext.setText("");addtext.setText("");teltext.setText("");mobtext.setText("");emailtext.setText("");return;}//从各文本域中获取新数据中Note note=new Note();note.name=nametext.getText();note.zip=ziptext.getText();note.address=addtext.getText();note.telephone=teltext.getText();note.mobile=mobtext.getText();note.email=emailtext.getText();try {ObjectInputStream in=new ObjectInputStream(new FileInputStream("note.dat"));//从原文件中读入已有的数据nameCardArray=(ArrayList) in.readObject();in.close();} catch (Exception ex) {// TODO: handle exception}try {ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("note.dat", true));Note temp=new Note();int i;//判定是否存在相同的记录for (i = 0; i <nameCardArray.size(); i++) {temp=(Note)nameCardArray.get(i);if(temp.name.equalsIgnoreCase(nametext.getText()));break;}if(nameCardArray.size()!=0&&i!=nameCardArray.size()){JOptionPane.showMessageDialog(null, "已经存在此记录","Message",JOptionPane.INFORMATION_MESSAGE);}else{nameCardArray.add(note);//回写数据out.writeObject(nameCardArray);}out.close();} catch (Exception ex) {// TODO: handle exception}nametext.setText("");ziptext.setText("");addtext.setText("");teltext.setText("");mobtext.setText("");emailtext.setText("");}});find.addActionListener(new ActionListener()//给查找按钮注册监听器 {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubtry {ObjectInputStream in=new ObjectInputStream(new FileInputStream("note.dat"));nameCardArray=(ArrayList) in.readObject();in.close();} catch (Exception ex) {// TODO: handle exception}Note temp=new Note();int i;for (i = 0;i  < nameCardArray.size();i ++){temp=(Note)nameCardArray.get(i);if(temp.name.equalsIgnoreCase(nametext.getText()))break;}if(nameCardArray.size()!=0&&i!=nameCardArray.size()){ziptext.setText(temp.zip);addtext.setText(temp.address);teltext.setText(temp.telephone);mobtext.setText(temp.mobile);emailtext.setText(temp.email);}else{nametext.setText("");ziptext.setText("");addtext.setText("");teltext.setText("");mobtext.setText("");emailtext.setText("");JOptionPane.showMessageDialog(null, "无此记录","Message",JOptionPane.INFORMATION_MESSAGE);}}});clear.addActionListener(new ActionListener()//给清空按钮注册监听器 {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubtry {ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("note.dat"));nameCardArray.clear();out.close();} catch (Exception e1){// TODO: handle exception}nametext.setText("");ziptext.setText("");addtext.setText("");teltext.setText("");mobtext.setText("");emailtext.setText("");}});exit.addActionListener(new ActionListener()//给退出按钮注册注册监听器{@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSystem.exit(1);}});//布置按钮cp.add(title);cp.add(name);cp.add(zip);cp.add(address);cp.add(telephone);cp.add(mobile);cp.add(email);cp.add(nametext);cp.add(ziptext);cp.add(addtext);cp.add(teltext);cp.add(mobtext);cp.add(emailtext);cp.add(add);cp.add(find);cp.add(clear);cp.add(exit);}public static void main(String[] args){Communication com=new Communication("通信录");com.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);}});com.setSize(480,460);com.setVisible(true);}
}

三、运行截图

java编写一个个人通信录程序相关推荐

  1. 用java编写一个故事的程序_使用Java怎么编写一个递归程序

    使用Java怎么编写一个递归程序 发布时间:2021-02-20 16:05:44 来源:亿速云 阅读:52 作者:Leah 这篇文章将为大家详细讲解有关使用Java怎么编写一个递归程序,文章内容质量 ...

  2. java编写一个字体特效程序。

    一.效果图 package java实训; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.Ac ...

  3. JAVA编写一个telephone_1、 编写一个Java程序,程序中有一个类Telephone, Telephone类中包括有电话品牌、...

    用Java编写一个员工类程序:1.属性:员工编号,员工姓名,基本工资,奖金,2.构造方法:至少两个.如下: package com.test;public class Employee { /** * ...

  4. java写便签_如何编写一个便签程序(用Java语言编写)

    如何编写一个便签程序(用Java语言编写) 热度:336   发布时间:2011-02-18 11:44:16 如何编写一个便签程序(用Java语言编写) 因为以前没有好好学习Java,都搞忘了,请大 ...

  5. 用Java编写一个最简单的桌面程序

    使用Java的优势在于网络应用方面,但Java也提供了强大的用于开发桌面程序的API,它们包含在javax.swing包中.使用这个包可以编写简单的Java桌面应用程序. Java的javax.swi ...

  6. 用java编写一个简单计算器

    java 采用java编写一个简单计算器,使用awt和swing 代码如下: import java.awt.Color; import java.awt.Font; import java.awt. ...

  7. java编写某计算器控制台程序_计算器 - 进阶的憨狗 - 博客园

    源起 最近在看程杰著作的<大话设计模式>,全书以小菜和大鸟对话的形势,由浅入深的讲解程序的设计思想,影射出一个个设计模式.我之前虽然也使用过一些设计模式,但没有系统的学习.整理.总结,现从 ...

  8. 如何用java编写一个简单的多人PK游戏

    如何用java编写一个简单的多人PK游戏 类与对象---PK游戏的编写 素材取用----王者荣耀和BILIBILI 创建两个对战的角色(PK游戏最少需要两名角色) 创建孙尚香和Van 设置孙尚香和Va ...

  9. JAVA编写的简单计算器程序

    系列文章目录 文章目录 系列文章目录 前言 一.JAVA编写的简单计算器程序 前言 链接:https://pan.baidu.com/s/1oPJRIbwxcXgewZ_KZaWzTg 提取码:egy ...

最新文章

  1. c潭州课堂25班:Ph201805201 MySQL第二课 (课堂笔记)
  2. org.apache.hadoop.io
  3. mysql查询优化技巧
  4. OpenGL Julia Fractal(Julia分形)的实例
  5. 将枚举类型的数据绑定到控件
  6. Java的挥发性修饰符
  7. python中score_在Python中“得分必须返回一个数字”scikit-learn中的cross_val_score错误...
  8. 最佳 Web 编程语言都有哪些?
  9. 任正非讲话稿400篇_伟大背后是苦难!任正非“思想之路”:400+讲话稿合集
  10. c 语言fabs函数的作用,c语言fabs是什么意思
  11. 磁盘必须经过初始化,逻辑磁盘管理器才能访问——笔记本硬盘作为移动硬盘使用时遇到的问题...
  12. 软件技术人员成长路线的设计
  13. 任务四:Crypto学习
  14. Linux SPI驱动框架(2)——控制器驱动层
  15. 主板上的内存插槽颜色到底代表了什么意思?
  16. Mac 打开safari浏览器直接卡死解决方法,解决Safari浏览器访问网页卡死重新再打开浏览器还是卡死实例演示
  17. Java总结 - 抽象类与接口
  18. unity虚拟现实技术场景漫游
  19. 频繁模式挖掘 Apriori
  20. icloud android,果粉当腻了?你和安卓手机只差一个iCloud同步

热门文章

  1. 比较使用LUT和不使用LUT的颜色空间转换的处理时间差异
  2. Linux常用命令——xargs
  3. 【小工具】根据定义的白名单字段进行Bean的拷贝
  4. Java Web Start简介
  5. linux中wget 、apt-get、yum rpm区别
  6. iOS - Card Identification 银行卡号识别
  7. CSS3新属性:在网站中使用访客电脑里没有安装的字体
  8. 什么是阿姆达尔定律?
  9. unix/linux命令参考
  10. 商品详情页html代码获取,直播带货小程序源码中,商品详情页是如何获取html图片的...