个人图书管理系统.docx
《个人图书管理系统.docx》由会员分享,可在线阅读,更多相关《个人图书管理系统.docx(13页珍藏版)》请在冰点文库上搜索。
个人图书管理系统java代码
publicclassBook{
privateStringname;//书名
privateStringfenlei;//分类
privateStringbuyTime;//购买时间
privatedoublevalue;//价格
privateStringjianjie;//简介
publicBook(){
name="";
fenlei="";
buyTime ="";
value=0;
jianjie ="";
}
publicBook(Stringn,Stringf,Stringb,doublev,Stringj){
name=n;
fenlei=f;
buyTime =b;
value=v;
jianjie =j;
}
publicvoidsetName(Stringn){
name=n;
}
publicvoidsetFenlei(Stringf){
fenlei=f;
}
publicvoidsetBuyTime(Stringb){
buyTime =b;
}
publicvoidsetValue(doublev){
value=v;
}
publicvoidsetJianjie(Stringj){
jianjie =j;
}
publicStringgetName(){
returnname;
}
publicStringgetFenlei(){
returnfenlei;
}
publicStringgetBuyTime(){
returnbuyTime;
}
publicdoublegetValue(){
returnvalue;
}
publicStringgetJianjie(){
returnjianjie;
}
}
/**
*@(#)MyBookSystem.java
*@author
*@version1.002010/3/6
*/
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
importjavax.swing.event.TreeSelectionEvent;
importjavax.swing.event.TreeSelectionListener;
importjava.util.*;
importjava.awt.Color;
importjavax.swing.tree.DefaultMutableTreeNode;
importjavax.swing.tree.DefaultTreeModel;
importjavax.swing.tree.TreeNode;
importjava.io.*;
publicclassMyBookSystemimplementsActionListener,TreeSelectionListener{
JFrameframe;
JPanelpanel1;
JPanelpanel2;
JMenuBarmenubar;//菜单栏
JMenufile;
JMenusort;//排序
JMenucaozuo;//操作
JMenuItemcancel;
JMenuItemsort1;//按价格排序
JMenuItemsort2;//按字母排序
JMenuItemaddJMenuItem;
JMenuItemdeleteJMenuItem;
JMenuItemfindJMenuItem;
JTreejTree=null;
JTextAreatextArea;
JScrollPanescrollPane;
JButtonadd;
JButtondelete;
JButtonfind;
DefaultTreeModeltreeModel=null;
privateFilefileBook;
privateArrayListarrayList;
String[]str={"经典","言情","历史","科技","人文","健康","生活","教材"};
DefaultMutableTreeNoderoot=newDefaultMutableTreeNode("我的书籍");
/**
*CreatesanewinstanceofMyBookSystem
.
*/
publicMyBookSystem(){
frame=newJFrame("我的书管理系统");
frame.setSize(500,400);
frame.setLayout(newBorderLayout());
//设置panel1
panel1=newJPanel();
panel1.setBackground(Color.gray);
jTree=newJTree(getTree());
treeModel=(DefaultTreeModel)jTree.getModel();//
jTree.addTreeSelectionListener(this);
panel1.add(jTree);
//设置panel2
panel2=newJPanel();
panel2.setLayout(null);
textArea=newJTextArea();
scrollPane=newJScrollPane(textArea);
add=newJButton("增加");
delete=newJButton("删除");
find=newJButton("查找");
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=newJMenuBar();
file=newJMenu("文件");
sort=newJMenu("排序");
caozuo=newJMenu("操作");
addJMenuItem=newJMenuItem("增加");
deleteJMenuItem=newJMenuItem("删除");
findJMenuItem=newJMenuItem("查找");
cancel=newJMenuItem("退出");
sort1=newJMenuItem("按价格");
sort2=newJMenuItem("按名字");
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(newWindowAdapter(){
publicvoidwindowClosing(WindowEventwe){
System.exit(0);
}
});
frame.add("North",menubar);
frame.add("West",panel1);
frame.add("Center",panel2);
frame.setVisible(true);
fileBook=newFile("图书.dat");
arrayList=newArrayList();
readFile();
}
privateDefaultMutableTreeNodegetTree(){
for(inti=0;i root.add(newDefaultMutableTreeNode(str[i]));
returnroot;
}
privatevoidreadFile(){
try{
ObjectInputStreamois=newObjectInputStream(newFileInputStream(fileBook));
arrayList=(ArrayList)ois.readObject();
ois.close();
}catch(Exceptione){}
}
privatevoidwriteFile(Bookbook){//写文件
try{
ObjectOutputStreamoos=newObjectOutputStream(newFileOutputStream("图书.dat"));
arrayList.add(book);
oos.writeObject(arrayList);
oos.close();
}catch(Exceptione){}
}
//实现ActionListener方法
publicvoidactionPerformed(ActionEventae){
intlen=arrayList.size();
if(ae.getSource()==add||ae.getSource()==addJMenuItem){
AddDialogadd=newAddDialog(this.frame,true);
add.show();
}
elseif(ae.getSource()==find||ae.getSource()==findJMenuItem){
if(len==0){
JOptionPane.showMessageDialog(frame,"我的书籍里没书!
!
!
");
return;
}
find();
}
elseif(ae.getSource()==delete||ae.getSource()==deleteJMenuItem){
if(len==0){
JOptionPane.showMessageDialog(frame,"我的书籍里没书!
!
!
");
return;
}
delete();
}
elseif(ae.getSource()==sort1){
sortValue();
}
elseif(ae.getSource()==sort2){
}
elseif(ae.getSource()==cancel){
System.exit(0);
}
}
//实现TreeSelectionListener方法
publicvoidvalueChanged(TreeSelectionEvente){
DefaultMutableTreeNodedefaultNode=(DefaultMutableTreeNode)jTree.
getLastSelectedPathComponent();
if(defaultNode!
=null){
Stringname=defaultNode.getUserObject().toString();
intlen=arrayList.size();
inti=0;
while(i Booktemp=(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++;
}
}
}
//删除书
publicvoiddelete(){
Stringname="";
try{
name=JOptionPane.showInputDialog(frame,"请输入书名:
","不能为空");
}catch(Exceptione){System.out.println("hejhtrjy6r");}
if(name.equalsIgnoreCase("")){return;}
intlen=arrayList.size();
inti=0;
Booktemp=newBook();
while(i 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()+"删除成功!
!
");
}
}
privatevoiddeleteJTreeNode(Stringname,Stringfenlei){
DefaultMutableTreeNodeparent=root.getNextNode();
while(parent!
=null&&!
parent.getUserObject().equals(fenlei)){
parent=parent.getNextSibling();//获得兄弟节点
}
DefaultMutableTreeNodechild=parent.getFirstLeaf();
while(child!
=null&&!
child.getUserObject().equals(name)){
child=child.getNextSibling();//获得兄弟节点
}
treeModel.removeNodeFromParent(child);
}
//找书
publicvoidfind(){
Stringname="";
try{
name=JOptionPane.showInputDialog(frame,"请输入书名:
","不能为空");
}catch(Exceptione){System.out.println("g43h35h54h4j"+name);return;}
if(name.equalsIgnoreCase("")){return;}
intlen=arrayList.size();
inti=0;
Booktemp=newBook();
while(i temp=(Book)arrayList.get(i);
if(name.equalsIgnoreCase(temp.getName())){
break;
}
i++;
}
if(i==len){
textArea.setText("\n\n没有该书!
!
");
return;
}
else{
textArea.setText("您要找的书:
\n"+"书名:
"+temp.getName()+"\n类别:
"+temp.getFenlei()+"\n购买时间:
"
+temp.getBuyTime()+"\n单价:
"+temp.getValue()+"\n简介:
"+temp.getJianjie());
}
}
//排序
publi