java简单通讯录管理系统,
前言
这个也是爪哇实验课程的一个作业,和爪哇实现简单的图形界面计算器一起做的,因为以前没有做过图像使用者界面编程,所以做的非常简陋,还有很多BUG,但是感觉当个作业也够了。
程序功能和截图
这里的添加是直接添加到文件中,为什么不用数据库呢?因为我们老师根本就没教,所以也不能用。
通过输入的名字在文件中查找是否有该用户,如果用,就显示到界面上。
大致的功能就是上面两个。
代码
一、文件读写工具
包装联系人;导入Java。io。*;/***由贾一凡于2018/6/10创建* public class FileRW { private static FileWriter FileWriter;私有静态文件阅读器私有静态BufferedReader bf私有静态缓冲写入器带宽私有静态文件File=新文件( d : dest。txt’);public static void fileWrite(String s){ try { fileWriter=new fileWriter(file,true);bw=新缓冲写入器(文件写入器);写操作;} catch(io异常e){ e . printstacktrace();}最后{试试{ bw。close();文件写入器。close();} catch(io异常e){ e . printstacktrace();} } }公共静态字符串fileRead(String dest){ try { fileReader=new fileReader(file);BF=新缓冲读取器(fileReader);字符串ss;while((ss=bf.readLine())!=null) { String[] temp=ss.split(,);if(temp[0]).equals(dest)){ return ss;} } } catch(找不到文件异常e){ e . printstacktrace();} catch(io异常e){ e . printstacktrace();}最后{试试{ BF。close();文件阅读器。close();} catch(io异常e){ e . printstacktrace();} }返回null } }二、界面程序
包装联系人;导入javax。挥棒。*;导入Java。awt。*;导入Java。awt。事件。动作事件;导入Java。awt。事件。动作监听器;导入Java。awt。事件。窗口适配器;导入Java。awt。事件。窗口事件;//定义自已的我的面板,用于实现画图MyPanelone类扩展JPanel {私有字符串ss私有int x;私有int y;私有(同Internationalorganizations)国际组织大小;
public MyPanelone(String ss, int x, int y, int size) { this.ss = ss; this.x = x; this.y = y; this.size = size; } //覆盖JPanel的paint方法 @Override public 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 { @Override public 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() { @Override public 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() { @Override public 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() { @Override public 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() { @Override public 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() { @Override public 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); }}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。