基本信息
源码名称:java课程设计:通讯录源码,实现了增、删、改、查(基于xml)
源码大小:0.02M
文件格式:.rar
开发语言:Java
更新时间:2019-06-12
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
基于XML的课程设计,可以运行,通讯录,添加修改信息等
基于XML的课程设计,可以运行,通讯录,添加修改信息等
package xml; import java.awt.event.*; import javax.swing.*; import javax.swing.border.EmptyBorder; import java.awt.*; import javax.xml.parsers.*; import java.io.*; import org.w3c.dom.*; import javax.xml.transform.*; import javax.xml.transform.dom.*; import javax.xml.transform.stream.*; @SuppressWarnings("serial") public class AddressList extends JFrame implements ActionListener{ private AddressList mainFrame=this; JButton addRecord = new JButton("添加"); JButton lookup = new JButton("查找"); JButton delete = new JButton("�h除"); JButton change = new JButton("修改"); JButton showAllResult = new JButton("所有"); JTextField qq = new JTextField(8); JTextField name = new JTextField(8); Object[] sex = {"男", "女"}; JComboBox<Object> gender = new JComboBox<Object>(sex); JTextField age = new JTextField(8); JTextField address = new JTextField(15); JTextField phone = new JTextField(10); JLabel[] empty = new JLabel[10]; int ColLenght = 125; int width = 700; int height = 530; Object[] columnNames = {"姓名", "性别","QQ", "年龄", "地址", "联系电话"}; Object[][] studentInfo = new Object[ColLenght][6]; JTable table = new JTable(studentInfo, columnNames); JFrame find=new Find(); JFrame verify=new Change(); Document doc; public AddressList(){ setTitle("通讯录"); setSize(width, height); setVisible(true); setResizable(false); setLocationRelativeTo(null);//将框架至于屏幕中间 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /////////////////////////////// //修改背景图片,图片大小最好为 width*height像素 JLabel label = new JLabel(new ImageIcon("Img/22.jpg"));// 把背景图片显示在一个标签里面 label.setBounds(0, 0, width, height); ((JPanel) this.getContentPane()).setOpaque(false); this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE)); ///////////////////////////////////////////// setLayout(new BorderLayout()); JPanel p2=new JPanel(); p2.setOpaque(false); p2.setLayout(new GridLayout(0, 1, 0, 20)); for(int i = 0; i < 2; i ){ empty[i] = new JLabel(); p2.add(empty[i]); } //修改按钮颜色 lookup.setBackground(Color.green); delete.setBackground(Color.green); addRecord.setBackground(Color.green); change.setBackground(Color.green); showAllResult.setBackground(Color.green); p2.add(lookup); p2.add(delete); p2.add(addRecord); p2.add(change); p2.add(showAllResult); for(int i = 0; i < 4; i ){ empty[i] = new JLabel(); p2.add(empty[i]); } this.add(p2, BorderLayout.EAST); JPanel p3=new JPanel(); p3.setOpaque(false); p3.add("Center", new JScrollPane(table)); this.add(p3, BorderLayout.CENTER); validate(); addRecord.addActionListener(this); lookup.addActionListener(this); delete.addActionListener(this); change.addActionListener(this); showAllResult.addActionListener(this); //为表格添加单击事件 匿名类实现 table.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ name.setText((String)studentInfo[table.getSelectedRow()][0]); System.out.println(name.getText()); if(((String)studentInfo[table.getSelectedRow()][1]).equals("男"))//判断是男还是女 gender.setSelectedIndex(0); else gender.setSelectedIndex(1); qq.setText((String)studentInfo[table.getSelectedRow()][2]); age.setText((String)studentInfo[table.getSelectedRow()][3]); address.setText((String)studentInfo[table.getSelectedRow()][4]); phone.setText((String)studentInfo[table.getSelectedRow()][5]); } }); init();//初始化表格 } public static void main(String[] args){ new AddressList(); } File xmlFile = null; public Document getDocument()throws Exception{ xmlFile = new File("src/data.xml"); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(xmlFile); return doc; } public void init(){//初始化表格 for(int i = 0; i < table.getRowCount(); i ){ studentInfo[i][0] = ""; studentInfo[i][1] = ""; studentInfo[i][2] = ""; studentInfo[i][3] = ""; studentInfo[i][4] = ""; studentInfo[i][5] = ""; } try{ doc = getDocument(); Element root = doc.getDocumentElement(); NodeList names = root.getElementsByTagName("name"); NodeList sexes = root.getElementsByTagName("sex"); NodeList qqs = root.getElementsByTagName("qq"); NodeList ages = root.getElementsByTagName("age"); NodeList addresses = root.getElementsByTagName("address"); NodeList phones = root.getElementsByTagName("phone"); for(int i = 0; i < names.getLength() && i < ColLenght; i ){ studentInfo[i][0] = names.item(i).getTextContent(); studentInfo[i][1] = sexes.item(i).getTextContent(); studentInfo[i][2] = qqs.item(i).getTextContent(); studentInfo[i][3] = ages.item(i).getTextContent(); studentInfo[i][4] = addresses.item(i).getTextContent(); studentInfo[i][5] = phones.item(i).getTextContent(); } repaint(); } catch(Exception e){ e.printStackTrace(); } } public void actionPerformed(ActionEvent e){ if(addRecord == e.getSource()){ new AddAndChange(); } if(delete == e.getSource()){ try { System.out.println(table.getSelectedRow()); Element root = doc.getDocumentElement(); root.removeChild(root.getElementsByTagName("sex").item(table.getSelectedRow()).getParentNode()); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource newDomSource = new DOMSource(root); transformer.transform(newDomSource,new StreamResult(new FileOutputStream(xmlFile))); init(); } catch(Exception e9){ e9.printStackTrace(); } } if(lookup == e.getSource()){ find.setVisible(true); } if(showAllResult == e.getSource()){ init(); } if(change == e.getSource()){ verify.setVisible(true); } } public Node makeupPeopleNode(Document doc,String n,String s,String q,String a,String ad,String p){ Element people2 = doc.createElement("people"); try{ Element name2 = doc.createElement("name"); Element sex2 = doc.createElement("sex"); Element qq2 = doc.createElement("qq"); Element age2 = doc.createElement("age"); Element address2 = doc.createElement("address"); Element phone2 = doc.createElement("phone"); name2.setTextContent(n); sex2.setTextContent(s); qq2.setTextContent(q); age2.setTextContent(a); address2.setTextContent(ad); phone2.setTextContent(p); people2.appendChild(name2); people2.appendChild(sex2); people2.appendChild(qq2); people2.appendChild(age2); people2.appendChild(address2); people2.appendChild(phone2); } catch(Exception e){ e.printStackTrace(); } return people2; } private class Find extends JFrame{ JTextField name = new JTextField(8); JButton chzhao = new JButton("查找"); public Find() { setTitle("查找"); setSize(200, 120); setResizable(false); setLocationRelativeTo(null);//将框架至于屏幕中间 setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); /////////////////////////////// JLabel label = new JLabel(new ImageIcon("Img/find.jpg"));// 把背景图片显示在一个标签里面 label.setBounds(0, 0, 200, 120); ((JPanel) this.getContentPane()).setOpaque(false); this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE)); ///////////////////////////////////////////// setLayout(new BorderLayout()); JPanel panel1=new JPanel(); JPanel panel2=new JPanel(); panel1.setOpaque(false); panel2.setOpaque(false); name.setBorder(BorderFactory.createTitledBorder("姓名")); panel1.add(name); panel2.add(chzhao); add(panel1,BorderLayout.NORTH); add(panel2,BorderLayout.SOUTH); chzhao.setBackground(Color.green); chzhao.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(chzhao == e.getSource()){ String lookupName = name.getText(); try{ for(int i = 0; i < table.getRowCount(); i ){ studentInfo[i][0] = ""; studentInfo[i][1] = ""; studentInfo[i][2] = ""; studentInfo[i][3] = ""; studentInfo[i][4] = ""; studentInfo[i][5] = ""; } doc = getDocument(); Element root = doc.getDocumentElement(); NodeList names = root.getElementsByTagName("name"); NodeList sexes = root.getElementsByTagName("sex"); NodeList qqs = root.getElementsByTagName("qq"); NodeList ages = root.getElementsByTagName("age"); NodeList addresses = root.getElementsByTagName("address"); NodeList phones = root.getElementsByTagName("phone"); int index=0; for(int i = 0; i < names.getLength(); i ){ if(names.item(i).getTextContent().indexOf(lookupName) != -1){ studentInfo[index][0] = names.item(i).getTextContent(); studentInfo[index][1] = sexes.item(i).getTextContent(); studentInfo[index][2] = qqs.item(i).getTextContent(); studentInfo[index][3] = ages.item(i).getTextContent(); studentInfo[index][4] = addresses.item(i).getTextContent(); studentInfo[index][5] = phones.item(i).getTextContent(); index ; } } mainFrame.repaint(); } catch(Exception e8){ e8.printStackTrace(); } } } }); } } private class Change extends JFrame{ JButton changeRecord = new JButton("保存"); public Change() { setTitle("修改"); setSize(560, 150); setResizable(false); setLocationRelativeTo(null);//将框架至于屏幕中间 setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); /////////////////////////////// JLabel label = new JLabel(new ImageIcon("Img/change.jpg"));// 把背景图片显示在一个标签里面 label.setBounds(0, 0, 560, 150); ((JPanel) this.getContentPane()).setOpaque(false); this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE)); ///////////////////////////////////////////// changeRecord.setBackground(Color.green); qq.setBorder(BorderFactory.createTitledBorder("QQ")); name.setBorder(BorderFactory.createTitledBorder("姓名")); gender.setBorder(BorderFactory.createTitledBorder("性别")); age.setBorder(BorderFactory.createTitledBorder("年龄")); address.setBorder(BorderFactory.createTitledBorder("地址")); phone.setBorder(BorderFactory.createTitledBorder("电话号码")); setLayout(new BorderLayout()); JPanel p = new JPanel(); p.setOpaque(false); p.setLayout(new GridLayout(1,0,0,20)); p.add(name); p.add(gender); p.add(age); p.add(address); p.add(phone); p.add(qq); add(p,BorderLayout.NORTH); JPanel p1 = new JPanel(); p1.setOpaque(false); p1.add(changeRecord); add(p1,BorderLayout.SOUTH); changeRecord.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String n="",s="",q="",a="",ad="",p=""; try{n=name.getText();}catch(Exception e2){n="";} try{s=(String)(gender.getSelectedItem());}catch(Exception e3){s="";} try{q=qq.getText();}catch(Exception e4){q="";} try{a=age.getText();}catch(Exception e5){a="";} try{ad=address.getText();}catch(Exception e6){ad="";} try{p=phone.getText();}catch(Exception e7){p="";} try{ Element root = doc.getDocumentElement(); //System.out.println(root.getElementsByTagName("sex").item(table.getSelectedRow()).getParentNode().getTextContent()); root.replaceChild(makeupPeopleNode(doc,n,s,q,a,ad,p),root.getElementsByTagName("sex").item(table.getSelectedRow()).getParentNode()); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource newDomSource = new DOMSource(root); transformer.transform(newDomSource,new StreamResult(new FileOutputStream(xmlFile))); init(); } catch(Exception e8) { System.out.println("异常信息5:" e8); } } }); try { doc = getDocument(); } catch (Exception e) { e.printStackTrace(); } } } }