个人图书管理系统_第1页
个人图书管理系统_第2页
个人图书管理系统_第3页
个人图书管理系统_第4页
个人图书管理系统_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

个人图书管理系统 java代码public class Book private String name;/书名private String fenlei;/分类private String buyTime;/购买时间private double value;/价格private String jianjie;/简介 public Book() name=; fenlei=; buyTime=; value=0; jianjie=; public Book(String n,String f,String b,double v ,String j) name=n; fenlei=f; buyTime=b; value=v; jianjie=j; public void setName(String n) name=n; public void setFenlei(String f) fenlei=f; public void setBuyTime(String b) buyTime=b; public void setValue(double v) value=v; public void setJianjie(String j) jianjie=j; public String getName() return name; public String getFenlei() return fenlei; public String getBuyTime() return buyTime; public double getValue() return value; public String getJianjie() return jianjie; /* * (#)MyBookSystem.java * author * version 1.00 2010/3/6 */import java.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.event.TreeSelectionEvent;import javax.swing.event.TreeSelectionListener;import java.util.*;import java.awt.Color;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.DefaultTreeModel;import javax.swing.tree.TreeNode;import java.io.*;public class MyBookSystem implements ActionListener,TreeSelectionListener JFrame frame;JPanel panel1;JPanel panel2;JMenuBar menubar;/菜单栏JMenu file;JMenu sort;/排序JMenu caozuo;/操作JMenuItem cancel;JMenuItem sort1;/按价格排序JMenuItem sort2;/按字母排序JMenuItem addJMenuItem;JMenuItem deleteJMenuItem;JMenuItem findJMenuItem; JTree jTree=null; JTextArea textArea; JScrollPane scrollPane ; JButton add; JButton delete; JButton find; DefaultTreeModel treeModel = null; private File fileBook; private ArrayList arrayList; String str=经典,言情,历史,科技,人文,健康,生活,教材; DefaultMutableTreeNode root = new DefaultMutableTreeNode(我的书籍); /* * Creates a new instance of MyBookSystem. */ public MyBookSystem() frame=new JFrame(我的书管理系统); frame.setSize(500,400); frame.setLayout(new BorderLayout(); /设置panel1 panel1=new JPanel(); panel1.setBackground(Color.gray); jTree=new JTree(getTree(); treeModel = (DefaultTreeModel) jTree.getModel();/ jTree.addTreeSelectionListener(this); panel1.add(jTree); /设置panel2 panel2=new JPanel(); panel2.setLayout(null); textArea=new JTextArea(); scrollPane=new JScrollPane(textArea); add=new JButton(增加); delete=new JButton(删除); find=new JButton(查找); add.addActionListener(this); delete.addActionListener(this); find.addActionListener(this); /textArea.setBounds(0,0,450,260); scrollPane.setBounds(0,0,450,260); add.setBounds(15,280,100,40); delete.setBounds(145,280,100,40); find.setBounds(270,280,100,40); /panel2.add(textArea); panel2.add(scrollPane); panel2.add(add); panel2.add(delete); panel2.add(find); /设置菜单栏 menubar=new JMenuBar(); file=new JMenu(文件); sort=new JMenu(排序); caozuo=new JMenu(操作); addJMenuItem=new JMenuItem(增加); deleteJMenuItem=new JMenuItem(删除); findJMenuItem=new JMenuItem(查找); cancel=new JMenuItem(退出); sort1=new JMenuItem(按价格); sort2=new JMenuItem(按名字); menubar.add(file); menubar.add(sort); menubar.add(caozuo); file.add(cancel); caozuo.add(addJMenuItem); caozuo.add(deleteJMenuItem); caozuo.add(findJMenuItem); sort.add(sort1); sort.add(sort2); addJMenuItem.addActionListener(this); deleteJMenuItem.addActionListener(this); findJMenuItem.addActionListener(this); cancel.addActionListener(this); sort1.addActionListener(this); sort2.addActionListener(this); frame.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent we) System.exit(0); ); frame.add(North,menubar); frame.add(West,panel1); frame.add(Center,panel2); frame.setVisible(true); fileBook=new File(图书.dat); arrayList=new ArrayList(); readFile(); private DefaultMutableTreeNode getTree() for(int i=0;istr.length;i+) root.add(new DefaultMutableTreeNode(stri); return root; private void readFile() try ObjectInputStream ois=new ObjectInputStream(new FileInputStream(fileBook); arrayList=(ArrayList)ois.readObject(); ois.close(); catch(Exception e) private void writeFile(Book book)/写文件 try ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(图书.dat); arrayList.add(book); oos.writeObject(arrayList); oos.close(); catch(Exception e) /实现ActionListener方法 public void actionPerformed(ActionEvent ae) int len=arrayList.size(); if(ae.getSource()=add | ae.getSource()=addJMenuItem) AddDialog add=new AddDialog(this.frame ,true); add.show(); else if(ae.getSource()=find| ae.getSource()=findJMenuItem) if(len=0) JOptionPane.showMessageDialog(frame,我的书籍里没书!); return; find(); else if(ae.getSource()=delete| ae.getSource()=deleteJMenuItem) if(len=0) JOptionPane.showMessageDialog(frame,我的书籍里没书!); return; delete(); else if(ae.getSource()=sort1) sortValue(); else if(ae.getSource()=sort2) else if(ae.getSource()=cancel) System.exit(0); /实现TreeSelectionListener方法 public void valueChanged(TreeSelectionEvent e) DefaultMutableTreeNode defaultNode = (DefaultMutableTreeNode) jTree. getLastSelectedPathComponent(); if(defaultNode!=null) String name=defaultNode.getUserObject().toString(); int len=arrayList.size(); int i=0; while(ilen) Book temp=(Book)arrayList.get(i); if(temp.getName().equals(name) textArea.setText(n 书名:+temp.getName()+n 类别: +temp.getFenlei()+n 购买时间:+temp.getBuyTime() +n 单价:+temp.getValue()+n 简介: +temp.getJianjie(); return; i+; /删除书 public void delete() String name= ; try name=JOptionPane.showInputDialog(frame,请输入书名:,不能为空); catch(Exception e)System.out.println(hejhtrjy6r); if(name.equalsIgnoreCase()return; int len=arrayList.size(); int i=0; Book temp=new Book(); while(ilen) temp=(Book)arrayList.get(i); if(name.equalsIgnoreCase(temp.getName() arrayList.remove(i); break; i+; if(i=len) JOptionPane.showMessageDialog(frame,不存在该书!); return; else deleteJTreeNode(temp.getName(),temp.getFenlei(); textArea.setText(该书:n+ 书名:+temp.getName()+n 类别:+temp.getFenlei()+n 购买时间: +temp.getBuyTime()+n 单价:+temp.getValue()+n 简介:+temp.getJianjie()+删除成功!); private void deleteJTreeNode(String name,String fenlei) DefaultMutableTreeNode parent=root.getNextNode(); while(parent!=null&!parent.getUserObject().equals(fenlei) ) parent=parent.getNextSibling();/获得兄弟节点 DefaultMutableTreeNode child=parent.getFirstLeaf(); while(child!=null&!child.getUserObject().equals(name) ) child=child.getNextSibling();/获得兄弟节点 treeModel.removeNodeFromParent(child); /找书 public void find() String name= ; try name=JOptionPane.showInputDialog(frame,请输入书名:,不能为空); catch(Exception e)System.out.println(g43h35h54h4j+name);return; if(name.equalsIgnoreCase()return; int len=arrayList.size(); int i=0; Book temp=new Book(); while(ilen) temp=(Book)arrayList.get(i); if(name.equalsIgnoreCase(temp.getName() break; i+; if(i=len) textArea.setText(nn 没有该书!); return; else textArea.setText(您要找的书:n+ 书名:+temp.getName()+n 类别:+temp.getFenlei()+n 购买时间: +temp.getBuyTime()+n 单价:+temp.getValue()+n 简介:+temp.getJianjie(); /排序 public void sortValue()/按单价 int n=arrayList.size(); int i,j,max; for(i=0;in-1;i+) max=i; for(j=i+1;jv2) max=j; if(max!=i) Book temp1=(Book)arrayList.get(i); Book temp2=(Book)arrayList.get(max); arrayList.set(i,temp2); arrayList.set(max,temp1); printArrayList(); /public void sortName()/按书名/private void printArrayList()int n=arrayList.size();int i=0;String str=;for(;in;i+) Book temp=(Book)arrayList.get(i); str+=第+(i+1)+:n+ 书名:+temp.getName()+n 类别:+temp.getFenlei()+n 购买时间: +temp.getBuyTime()+n 单价:+temp.getValue()+n 简介:+temp.getJianjie()+nn; textArea.setText(str); /*内部类 增加对话框*/ class AddDialog extends JDialog implements ActionListener /创建组件 JFrame frame1;/主程序的界面JLabel isnamedLabel=new JLabel();/用来显示名字是否存在JLabel nameLabel=new JLabel(书名:);JLabel flLabel=new JLabel(分类:);JLabel btLabel=new JLabel(购买日期:);JLabel vaLabel=new JLabel(价格:);JLabel jjLabel=new JLabel(简介:);JTextField nametf=new JTextField();JTextField bttf=new JTextField();JComboBox flComboBox;JTextField vatf=new JTextField();JTextArea jjta=new JTextArea(5,10);JButton ok=new JButton(确定);JButton cancel2=new JButton(取消); public AddDialog(JFrame parent,boolean modal)/设置对话框super(parent,modal);frame1=parent;setTitle(增加图书);setSize(400,330);setLayout(null);flComboBox=new JComboBox(str);flComboBox.setEditable(true);/设置组件的位置nameLabel.setBounds(80,30,30,20);flLabel.setBounds(80,60,30,20);btLabel.setBounds(80,90,60,20);vaLabel.setBounds(80,120,30,20);jjLabel.setBounds(80,150,30,20);nametf.setBounds(150,30,180,20); flComboBox.setBounds(150,60,180,20);bttf.setBounds(150,90,180,20);vatf.setBounds(150,120,180,20);jjta.setBounds(150,150,180,90);ok.setBounds(100,255,65,30);cancel2.setBounds(200,255,65,30);/添加组件add(nameLabel);add(flLabel);add(btLabel);add(vaLabel);add(jjLabel);add(nametf); add(flComboBox);add(bttf);add(vatf);add(jjta);add(ok);add(cancel2);/注册监听ok.addActionListener(this);cancel2.addActionListener(this);/添加关闭窗口监听器addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent we) setVisible(false); ); public void actionPerformed(ActionEvent ae) if(ae.getSource()=ok) addBook(); else if(ae.getSource()=cancel2) this.setVisible(false); public void addBook() readFile(); String name=nametf.getText(); if(name.equalsIgnoreCase() JOptionPane.showMessageDialog(this,书名不能为空!); return; if(isHad(name) JOptionPane.showMessageDialog(this,该书已存在!); return ; String fenlei=flComboBox.getSelectedItem().toString(); double value=0; if(!vatf.getText().equalsIgnoreCase( ) try value=Double.parseDouble(vatf.getText(); catch(Exception e) Book book=new Book(name,fenlei,bttf.getText(),value,jjta.getText() ); writeFile(book); textArea.setText(该书:n+ 书名:+name+n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论