前言

这个也是Java实验课程的一个作业,和Java实现简单的图形界面计算器一起做的,因为以前没有做过GUI编程,所以做的非常简陋,还有很多BUG,但是感觉当个作业也够了。

程序功能和截图


这里的添加是直接添加到文件中,为什么不用数据库呢?因为我们老师根本就没教,所以也不能用.。

通过输入的名字在文件中查找是否有该用户,如果用,就显示到界面上。

大致的功能就是上面两个。

代码

一、文件读写工具

package Contacts;import java.io.*;/*** Created by Yifan Jia on 2018/6/10.*/
public class FileRW {private static FileWriter fileWriter;private static FileReader fileReader;private static BufferedReader bf;private static BufferedWriter bw;private static File file = new File("D:\\dest.txt");public static void fileWrite(String s) {try {fileWriter = new FileWriter(file, true);bw = new BufferedWriter(fileWriter);bw.write(s);} catch (IOException e) {e.printStackTrace();} finally {try {bw.close();fileWriter.close();} catch (IOException e) {e.printStackTrace();}}}public static String fileRead(String dest) {try {fileReader = new FileReader(file);bf = new BufferedReader(fileReader);String ss;while((ss = bf.readLine()) != null) {String[] temp = ss.split(",");if(temp[0].equals(dest)) {return ss;}}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {bf.close();fileReader.close();} catch (IOException e) {e.printStackTrace();}}return null;}
}

二、界面程序

package Contacts;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;//定义自已的MyPanel,用于实现画图
class MyPanelone extends JPanel {private String ss;private int x;private int y;private int size;public MyPanelone(String ss, int x, int y, int size) {this.ss = ss;this.x = x;this.y = y;this.size = size;}//覆盖JPanel的paint方法@Overridepublic void paint(Graphics g) {super.paint(g);g.setColor(Color.BLACK);g.setFont(new Font("宋体", Font.BOLD, size));g.drawString(ss, x, y);}
}public class MyContacts extends JFrame{private MyPanelone myPaneone;private JPanel[] jPanels = new JPanel[7];private JButton[] jButtons = new JButton[4];private JTextField[] jTextFields = new JTextField[6];private JLabel[] jLabels = new JLabel[6];private String[] texts = new String[6];private class MyActionListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {boolean flag = true;StringBuilder s = new StringBuilder();String actionCommand = e.getActionCommand();if(actionCommand == "添加") {for (int i = 0; i < 6; i++) {texts[i] = new String();texts[i] = jTextFields[i].getText();//System.out.println(texts[i]);if(texts[i].equals("") || texts[i] == null) {flag = false;break;}if(i == 0) {s.append(texts[i]);}else {s.append(",").append(texts[i]);}}if(flag) {s.append("\n");//将文本域中的内容写成一个字符串String ss = s.toString();//将字符串写入文件FileRW.fileWrite(ss);for(int i=0;i<6;i++) {jTextFields[i].setText("");}//System.out.println(ss);JFrame jFrame = new JFrame();jFrame.setBounds(500, 300, 300, 300);MyPanelone myPanelone = new MyPanelone("添加成功", 100, 100, 20);jFrame.add(myPanelone);jFrame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {e.getWindow().dispose();}});jFrame.setVisible(true);}else {JFrame jFrame = new JFrame();jFrame.setBounds(500, 300, 300, 300);MyPanelone myPanelone = new MyPanelone("请把所有内容都填写完整", 60, 100, 15);jFrame.add(myPanelone);jFrame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {e.getWindow().dispose();}});jFrame.setVisible(true);}}else if(actionCommand == "清空") {for(int i=0;i<6;i++) {jTextFields[i].setText("");}}else if(actionCommand == "退出") {System.exit(0);}else if(actionCommand == "查找") {JFrame frame = new JFrame("输入");JPanel jPanel = new JPanel();JPanel jPanel1 = new JPanel();JLabel jLabel = new JLabel("输入查找人的名字");JButton jButton = new JButton("确定");JTextField jTextField = new JTextField(30);jPanel.add(jLabel);jPanel.add(jTextField);jButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String actionCommand1 = e.getActionCommand();String dest = jTextField.getText();String findresult = FileRW.fileRead(dest);if(findresult == null) {for(int i=0;i<6;i++) {jTextFields[i].setText("");}JFrame jFrame = new JFrame();jFrame.setBounds(500, 300, 300, 300);MyPanelone myPanelone = new MyPanelone("未找到该用户", 100, 100, 20);jFrame.add(myPanelone);jFrame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {e.getWindow().dispose();}});jFrame.setVisible(true);frame.dispose();}else {String[] tempdest = findresult.split(",");for(int i=0;i<6;i++) {jTextFields[i].setText(tempdest[i]);}frame.dispose();}}});jPanel1.add(jButton);frame.add(jPanel, BorderLayout.CENTER);frame.add(jPanel1, BorderLayout.SOUTH);frame.setBounds(500, 300, 400, 300);frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {e.getWindow().dispose();}});frame.setVisible(true);}}}MyContacts() {myPaneone = new MyPanelone("communication", 250, 60, 60);//myPaneone.setSize(1000, 150);this.add(myPaneone);for(int i=0;i<7;i++) {jPanels[i] = new JPanel();}jLabels[0] = new JLabel("姓名");jLabels[1] = new JLabel("邮政编码");jLabels[2] = new JLabel("通信地址");jLabels[3] = new JLabel("电话");jLabels[4] = new JLabel("手机");jLabels[5] = new JLabel("电子邮件");jButtons[0] = new JButton("添加");jButtons[1] = new JButton("查找");jButtons[2] = new JButton("清空");jButtons[3] = new JButton("退出");for(int i=0;i<6;i++) {jTextFields[i] = new JTextField(50);}//设置布局管理this.setLayout(new GridLayout(8, 1));//加入各个组件for(int i=0;i<6;i++) {jPanels[i].add(jLabels[i]);jPanels[i].add(jTextFields[i]);this.add(jPanels[i]);}for(int i=0;i<4;i++) {jButtons[i].addActionListener(new MyActionListener());jPanels[6].add(jButtons[i]);}this.add(jPanels[6]);}public static void main(String[] args) {JFrame f = new MyContacts();f.setTitle(f.getClass().getSimpleName());f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setBounds(400, 200, 1000, 600);f.setVisible(true);}
}

Java实现简易的界面通讯录相关推荐

  1. 用JAVA编写简易计算器界面

    import javax.swing.*; public class Demo {/*** 计算器界面* @author M4ndy*/public static void main(String[] ...

  2. java swt 计算器_JAVA开发简易计算器界面-SWT

    大家好,我是成都[LD],博客四年前就申请了,一直没打理,最近正好有时间,遂萌生了写技术博客的念头.我不得不感慨现在新技术更新很快,一不小心,就感觉自身就Out了.记得一年前,当时我也是在51CTO上 ...

  3. Android简易微信界面

    Android简易微信界面 专选课移动互联网开发的第一次作业,利用Android Studio进行了简易Android微信界面的搭建 完整项目代码 界面样式展示: 界面xml源码 主界面xml源码 & ...

  4. 使用AS自制简易微信界面

    文章目录 一.设计目标 二.功能说明 三.代码解析 1. layout文件夹 头部标签栏 底部(四个按钮) 中间信息栏 主界面布局 2. drawable文件夹 3.java文件夹 Fragment ...

  5. 简单计算器的设计java_(基于java的简易计算器的设计.doc

    (基于java的简易计算器的设计 基于java的简易计算器的设计 摘要 自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了 ...

  6. java开发一个简单的通讯录

    java开发一个简单的通讯录 ArrayList的综合应用 import java.util.*; public class ContactNote{static Scanner sc=new Sca ...

  7. Android studio设计一个简易微信界面

    一.设计要求及实现构想 1.设计一个简易微信界面框架,包含至少4个tab页面(我设计的4个分别为message.contact.find.config),要求能实现四个页面之间的点击切换. 2.首先分 ...

  8. java实现简易计算器,实现加减乘除,括号,算式查错,

    java实现简易计算器 问题分析 一.计算机界面显示 二. 计算器计算数据处理 三. 部分源代码(该源码未加入算式查错,文件资源正在上传) 三.完整源码,加减乘除,括号,delete,算式查错 问题分 ...

  9. Java 小项目——字符界面收银台(优化版)

    目录 1. 前言 2. 功能实现 3. 功能分析 4. 模块划分 5. UML图 6. 使用技术 7. 代码 1. 前言 三个月前,我就写过这个项目的低级版.之前是利用数组进行商品的存储,所以存在商品 ...

最新文章

  1. centos6.7上使用nginx实现负载均衡!
  2. python八:列表(list)
  3. 有用的mysql语句
  4. cocos2d-x初探学习笔记(4)--触屏事件
  5. 科普向--详解JavaScript中的数据类型
  6. leetcode 10 --- 正则表达式匹配
  7. 程序员再也不担心请不到假了!
  8. mockito无效_Mockito模拟无效方法
  9. 数学图形(2.1)三叶结
  10. lintcode-111-爬楼梯
  11. RubyOnRails 在linux平台安装的过程
  12. 基于深度学习的图像匹配技术一览
  13. 隐藏微信右上角的分享按钮
  14. 【MM系列】SAP MM物料账在制品承担差异功能及配置
  15. python 判断字符串是否是纯中文或者英文
  16. Visual C++网络编程经典案例详解 第5章 网页浏览器 CHtmlView类 查看源文件
  17. Android: How to Capture Screen in Gingerbread(2.3中实现截屏)
  18. 机器学习之L1、L2的区别与相关数学基础知识
  19. 9部最值得一看的黑客电影
  20. css-边框(border)

热门文章

  1. Glide加载动态图片
  2. 照片怎么在线压缩?怎么压缩照片大小?
  3. mysql插入中文报错
  4. “香约宁波”寻觅城市文化味
  5. 决策树算法思想及实现介绍
  6. 2022年下半年软件设计师考试报名时间
  7. 【python】详解numpy库与pandas库axis=0,axis= 1轴的用法
  8. 大连散客旅游网今日开通一站式服务升级滨城自助游
  9. mysql修改EST时区,mysql时间修改
  10. c语言学习日志 day5