问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java通讯录管理

发布网友 发布时间:2022-04-23 10:07

我来回答

1个回答

热心网友 时间:2023-05-02 23:10

大致写了一下,你可以看看:

package noteBook;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.ArrayList;

import java.util.StringTokenizer;

import java.util.Vector;

import javax.swing.*;

import javax.swing.table.DefaultTableModel;

class guiView extends JFrame implements ActionListener {

 JMenuBar jmb;

 JMenu text;

 JMenu edit;

 JMenu help;

 JMenuItem save;

 JMenuItem change;

 JMenuItem guide;

 JLabel name;

 JLabel address;

 JLabel post;

 JLabel mobilePhone;

 JLabel email;

 JTextField JT_name;

 JTextField JT_address;

 JTextField JT_post;

 JTextField JT_mobilePhone;

 JTextField JT_email;

 JButton jOk;

 JButton jCancel;

 JTable table;

 static DefaultTableModel dtm;

 Vector<String> head;

 int row = 0; // 用于标记当前行的位置

 public guiView() {

  super("通讯录管理程序");

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  setSize(600, 700);

  setVisible(true);

  Container con = this.getContentPane();

  jmb = new JMenuBar();

  this.setJMenuBar(jmb);

  text = new JMenu("文件", true);

  edit = new JMenu("编辑", true);

  help = new JMenu("帮助", true);

  save = new JMenuItem("保存");

  change = new JMenuItem("修改");

  guide = new JMenuItem("指导");

  save.addActionListener(this);save.setActionCommand("save");

  change.addActionListener(this);change.setActionCommand("change");

  guide.addActionListener(this);guide.setActionCommand("guide");

  text.add(save);edit.add(change);help.add(guide);

  jmb.add(text);jmb.add(edit);jmb.add(help);

  

  name = new JLabel("姓名:", Label.RIGHT);

  address = new JLabel("通信地址:", Label.RIGHT);

  post = new JLabel("邮编:", Label.RIGHT);

  mobilePhone = new JLabel("移动电话:", Label.RIGHT);

  email = new JLabel("电子邮件:", Label.RIGHT);

  JT_name = new JTextField(12);

  JT_address = new JTextField(28);

  JT_post = new JTextField(12);

  JT_mobilePhone = new JTextField(12);

  JT_email = new JTextField(12);

  jOk = new JButton("确定");

  jCancel = new JButton("取消");

  jOk.addActionListener(this);

  jOk.setActionCommand("ok");

  jCancel.addActionListener(this);

  jCancel.setActionCommand("cancel");

  JPanel panelSOUTH = new JPanel();

  JPanel panelCENTER = new JPanel();

  JPanel panelCENTERSouth = new JPanel();

  JPanel panelCENTERCenter = new JPanel();

  JPanel panelCENTERNorth = new JPanel();

  JPanel panelNorth = new JPanel();

  JPanel panelNorthSouth = new JPanel();

  head = new Vector<String>();

  head.addElement("姓名");

  head.addElement("通信地址");

  head.addElement("邮编");

  head.addElement("移动电话");

  head.addElement("电子邮件");

  dtm = new DefaultTableModel(null, head);

  showData();

  table = new JTable(dtm);

  

  table.addMouseListener(new MouseListener() {

   public void mouseClicked(MouseEvent e) {

    row = table.getSelectedRow();

    System.out.println(row);

    getData(row);

   }

   public void mouseEntered(MouseEvent e) {

   }

   public void mouseExited(MouseEvent e) {

   }

   public void mousePressed(MouseEvent e) {

   }

   public void mouseReleased(MouseEvent e) {

   }

  });

  JScrollPane jsp = new JScrollPane(table);

  panelNorthSouth.setLayout(new GridLayout(1, 5));

  panelNorthSouth.add(name);

  panelNorthSouth.add(address);

  panelNorthSouth.add(post);

  panelNorthSouth.add(mobilePhone);

  panelNorthSouth.add(email);

  panelNorth.setLayout(new BorderLayout());

  panelNorth.add(jsp,BorderLayout.CENTER);

  panelNorth.add(panelNorthSouth, BorderLayout.SOUTH);

  panelCENTERNorth.add(name);

  panelCENTERNorth.add(JT_name);

  panelCENTERNorth.add(email);

  panelCENTERNorth.add(JT_email);

  panelCENTERCenter.add(post);

  panelCENTERCenter.add(JT_post);

  panelCENTERCenter.add(mobilePhone);

  panelCENTERCenter.add(JT_mobilePhone);

  panelCENTERSouth.add(address);

  panelCENTERSouth.add(JT_address);

  panelCENTER.add(panelCENTERNorth, BorderLayout.NORTH);

  panelCENTER.add(panelCENTERCenter, BorderLayout.CENTER);

  panelCENTER.add(panelCENTERSouth, BorderLayout.SOUTH);

  panelSOUTH.add(jOk);

  panelSOUTH.add(jCancel);

  

  con.add(panelNorth, BorderLayout.NORTH);

  con.add(panelCENTER, BorderLayout.CENTER);

  con.add(panelSOUTH, BorderLayout.SOUTH);

 }

 // 对点击首行,上一行,下一行,最后一行按钮触发的操作进行事件响应处理

 public void actionPerformed(ActionEvent e) {

  String command = e.getActionCommand();

  if (command.equals("ok")) {

   String name = this.JT_name.getText();

   String address = this.JT_address.getText();

   String post = this.JT_post.getText();

   String mobilePhone = this.JT_mobilePhone.getText();

   String email = this.JT_email.getText();

   saveData(name, address, post, mobilePhone, email);

   showData();

   table.setModel(dtm);

   this.JT_name.setText("");

   this.JT_address.setText("");

   this.JT_post.setText("");

   this.JT_mobilePhone.setText("");

   this.JT_email.setText("");

  } 

  else if (command.equals("cancel")) {

   this.JT_name.setText("");

   this.JT_address.setText("");

   this.JT_post.setText("");

   this.JT_mobilePhone.setText("");

   this.JT_email.setText("");

  } 

  else if(command.equals("save")){

   // save all data in the table

  }

  else if(command.equals("change")){

   // table allow to change some data

  }

  else if(command.equals("guide")){

   // maybe show how to use it

  }

  else {

   System.err.println("error!");

   System.exit(-1);

  }

 }

 private void showData() {

  dtm = new DefaultTableModel(null, head);

  File file = new File("F:/java/data.txt");

  String str = null;

  BufferedReader br = null;

  try {

   br = new BufferedReader(new FileReader(file));

   str = br.readLine();

   while (str != null) {

    if (str == null) {

     System.err.println("no data!");

     break;

    } else {

     StringTokenizer st = new StringTokenizer(str, ",");// 每行信息的6个字段分别用空格隔开的

     Vector<String> v = new Vector<String>();

     v.addElement(st.nextToken());

     v.addElement(st.nextToken());

     v.addElement(st.nextToken());

     v.addElement(st.nextToken());

     v.addElement(st.nextToken());

     dtm.addRow(v);

    }

    str = br.readLine();

   }

   br.close();// 一定要关闭资源

  } catch (FileNotFoundException e) {

   e.printStackTrace();

  } catch (IOException e) {

   e.printStackTrace();

  }

 }

 

 private void saveData(String name, String address, String post,

   String mobilePhone, String email) {

  File file = new File("F:/java/data.txt");

  ArrayList list = null;

  try {

   BufferedReader br = new BufferedReader(new FileReader(file));

   list = new ArrayList();

   String ss = "";

   while ((ss = br.readLine()) != null)

    list.add(ss);

   br.close();

  } catch (Exception e) {

   e.printStackTrace();

  }

  list.set(row, name + "," + address + "," + post + "," + mobilePhone

    + "," + email);

  try {

   PrintWriter pw = new PrintWriter(file);

   for (int i = 0; i < list.size(); i++) {

    pw.println(list.get(i));

   }

   list.clear();

   list = null;

   pw.close();

  } catch (FileNotFoundException e) {

   e.printStackTrace();

  }

 }

 // 通过flag标记当前读到了文件的第几行。然后循环读至该行

 private void getData(int row) {

  File file = new File("F:/java/data.txt");

  String str = null;

  StringTokenizer st;

  BufferedReader br = null;

  try {

   br = new BufferedReader(new FileReader(file));

   for (int i = 0; i <= row; i++) {

    str = br.readLine();

   }

   if (str == null) {

    System.err.println("no data!");

   } else {

    st = new StringTokenizer(str, ",");// 每行信息的6个字段分别用空格隔开的

    this.JT_name.setText(st.nextToken());

    this.JT_address.setText(st.nextToken());

    this.JT_post.setText(st.nextToken());

    this.JT_mobilePhone.setText(st.nextToken());

    this.JT_email.setText(st.nextToken());

   }

   br.close();// 一定要关闭资源

  } catch (FileNotFoundException e) {

   e.printStackTrace();

  } catch (IOException e) {

   e.printStackTrace();

  }

 }

 public static void main(String[] s) {

  guiView c = new guiView();

  c.setVisible(true);

 }

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 ipad里只有一个home键吗?没有返回键等那些键吗? js或java代码导出手机通讯录信息 没有Home键的苹果平板是不是ipadpro? java通讯录的简单程序 java通讯录小程序,代码, IPAD没有home键,卡屏了怎么办? JAVA通讯录 求一个JAVA编写的通讯录,基本的就可以。 Java如何实现手机通讯录“添加”联系人电话、姓名、功能 java通讯录全部代码! ipad桌面快捷键怎么设置啊?新系统 ipad已经更新到iOS14,然后长按桌面添加小组件,但是为什么主屏幕左上角没有“? 苹果ipad里的设置键没了,怎么办 端午节祝福? BOSE qc35怎么连接电脑? win10 bosemini2 没有声音 bose音响蓝牙适配器怎么连接电脑? - 信息提示 怎么下载这个蓝牙驱动,刚买了BOSE蓝牙耳机连接电脑但是没有立体声,少了这个驱动 bose蓝牙耳机怎么连接电脑? 移动硬盘无法访问,拒绝访问怎么办? Java编写一个简单的通讯录 用java 开发出一个简单的android通讯录的思路是什么? JAVA 通讯录 用java编写通讯录的方法 不需要 窗口输入输出的 求! 用JAVA编写一个通讯录,只要有最基本的添加、查找就可以 java个人通讯录管理系统 求助java通讯录代码,,要求具备添加,删除,修改,查看和退出通讯录信息的功能. 输入3位数字 在通讯录中找到跟前3位数字相匹配的手机号码,用java怎么写代码? 接收数据MD5效验失败是什么意思? java系统的手机如何将通讯录里导出? java 电子通讯录的载入和保存代码 为什么我的电脑在tgp下载的地下城与勇士 下载好 安装的时候会显示安装包MD5校验失败 错误码: java手机通讯录怎么备份,最好可以备份到电脑或网络上 java 实现简单通讯录 安装地下城失败,什么情况 安卓机怎么样跟JAVA无系统手机互相导入导出通讯录啊 地下城与勇士登陆游戏出md5怎么解决 地下城与勇士下载为什么安装不了 dnf安装失败 dnf更新 出现更新包MD5校验失败,请手动更新 这是怎么了