图书管理系统代码  3 LibraryMainF…

简介: 图书管理系统代码  3 LibraryMainF…


import java.awt.AWTException;


import java.awt.BorderLayout;


import java.awt.Color;


import java.awt.Component;


import java.awt.MenuItem;


import java.awt.PopupMenu;


import java.awt.SystemTray;


import java.awt.Toolkit;


import java.awt.TrayIcon;


import java.awt.event.ActionEvent;


import java.awt.event.MouseEvent;


import java.awt.event.ActionListener;


import java.awt.event.InputEvent;


import java.awt.event.KeyEvent;


import java.awt.event.MouseListener;


import java.awt.print.PrinterException;


import java.io.File;


import java.io.FileInputStream;


import java.io.FileNotFoundException;


import java.io.FileOutputStream;


import java.io.FileWriter;


import java.io.IOException;


import java.io.InvalidClassException;


import java.io.ObjectInputStream;


import java.io.ObjectOutputStream;


import java.io.StreamCorruptedException;




import javax.swing.ImageIcon;


import javax.swing.JButton;


import javax.swing.JComboBox;


import javax.swing.JLabel;


import javax.swing.JMenu;


import javax.swing.JMenuBar;


import javax.swing.JMenuItem;


import javax.swing.JOptionPane;


import javax.swing.JPanel;


import javax.swing.JPopupMenu;




import javax.swing.JScrollPane;


import javax.swing.JTable;


import javax.swing.JToolBar;


import javax.swing.KeyStroke;


import javax.swing.table.DefaultTableCellRenderer;


import javax.swing.table.DefaultTableModel;


import javax.swing.table.TableColumn;


import javax.swing.table.TableModel;






public class LibraryMainF  extends InitFrame


{

private static final long serialVersionUID = 1L;






public LibraryMainF()


{

super("图书管理系统—主界面","Library.png",850,600);


//设置系统托盘


TrayIcon trayIcon =null;


if (SystemTray.isSupported()) {

SystemTray tray = SystemTray.getSystemTray();


  this.setResizable(false);//窗体不可调节大小


//设置系统图标显示的右键菜单


     


PopupMenu popup = new PopupMenu();


MenuItem exit_pop = new MenuItem("退出");


MenuItem showMainF_pop = new MenuItem("显示主界面");


exit_pop.addActionListener(listener);


showMainF_pop.addActionListener(listener);


popup.add(showMainF_pop);


popup.addSeparator();


popup.add(exit_pop);


trayIcon  = new TrayIcon(Toolkit.getDefaultToolkit().getImage("library_tray.png"), "图书管理系统", popup);


trayIcon.addActionListener(listener);


//为托盘添加鼠标事件 当单击或者双击系统托盘图标时  显示 主界面


trayIcon.addMouseListener(new MouseListener(){

public void mouseClicked(MouseEvent e)


{

// 当单击左键时将主界面设为可见


if(e.getButton()==MouseEvent.BUTTON1)


LibraryMainF.this.setVisible(true);


}




public void mouseEntered(MouseEvent e1) {

}




public void mouseExited(MouseEvent e2) {

}




public void mousePressed(MouseEvent e3) {

}




public void mouseReleased(MouseEvent e4) {

}


});


 


try {

tray.add(trayIcon);


} catch (AWTException e) {

System.err.println(e);


       }


if (trayIcon != null) {

trayIcon.setImage(Toolkit.getDefaultToolkit().getImage("library_tray.png"));


   }




}


//添加设置菜单


JMenuBar bar = new JMenuBar();


JMenu menu_book = new JMenu("图书");


JMenu menu_edit = new JMenu("编辑");


JMenu menu_help = new JMenu("帮助");


this.setJMenuBar(bar);


bar.add(menu_book);


bar.add(menu_edit);


bar.add(menu_help);


menuItem_add = new JMenuItem("添书(A)",new ImageIcon("add.png"));


  //设置助记符


menuItem_add.setMnemonic('A');


//设置加速键


menuItem_add.setAccelerator(


    KeyStroke.getKeyStroke(


        KeyEvent.VK_A,


        InputEvent.CTRL_MASK));


//添加监听器


menuItem_add.addActionListener(listener);


menuItem_add_class = new JMenuItem("添类(C)",new ImageIcon("add_class.png"));


  //设置助记符


menuItem_add_class.setMnemonic('C');


//设置加速键


menuItem_add_class.setAccelerator(


    KeyStroke.getKeyStroke(


        KeyEvent.VK_C,


        InputEvent.CTRL_MASK));


//添加监听器


menuItem_add_class.addActionListener(listener);


menuItem_search = new JMenuItem("查询(S)",new ImageIcon("search.png"));


menuItem_search.setMnemonic('S');


menuItem_search.setAccelerator(


    KeyStroke.getKeyStroke(


        KeyEvent.VK_S,


        InputEvent.CTRL_MASK));


  menuItem_search.addActionListener(listener);


menuItem_del = new JMenuItem("借出(B)",new ImageIcon("del.png"));


menuItem_del.setMnemonic('B');


menuItem_del.setAccelerator(


    KeyStroke.getKeyStroke(


        KeyEvent.VK_B,


        InputEvent.CTRL_MASK));


menuItem_del.addActionListener(listener);


menuItem_print = new JMenuItem("打印(P)",new ImageIcon("print.png"));


menuItem_print.setMnemonic('P');


menuItem_print.setAccelerator(


KeyStroke.getKeyStroke(


KeyEvent.VK_P,


InputEvent.CTRL_MASK));


menuItem_print.addActionListener(listener);


menuItem_exit = new JMenuItem("退出(E)",new ImageIcon("exit.png"));


menuItem_exit.setMnemonic('E');


menuItem_exit.setAccelerator(


    KeyStroke.getKeyStroke(


        KeyEvent.VK_E,


        InputEvent.CTRL_MASK));


menuItem_exit.addActionListener(listener);


menu_book.add(menuItem_add);


menu_book.add(menuItem_add_class);


menu_book.add(menuItem_search);


menu_book.add(menuItem_del);


menu_book.add(menuItem_print);


menu_book.addSeparator();


menu_book.add(menuItem_exit);


JMenuItem menuItem_edit_passW = new JMenuItem("改密(W)",new ImageIcon("edit_paasW.png"));


menuItem_edit_passW.setMnemonic('W');


menuItem_edit_passW.setAccelerator(


    KeyStroke.getKeyStroke(


        KeyEvent.VK_W,


        InputEvent.CTRL_MASK));


menuItem_edit_passW.addActionListener(listener);


         


         


         


           JMenuItem menuItem_new_user = new JMenuItem("新用户(N)",new ImageIcon("new_user.png"));


           menuItem_new_user.setMnemonic('N');


           menuItem_new_user.setAccelerator(


    KeyStroke.getKeyStroke(


        KeyEvent.VK_N,


        InputEvent.CTRL_MASK));


           menuItem_new_user.addActionListener(listener);


         


         


           menu_edit.add(menuItem_edit_passW);


           menu_edit.addSeparator();


           menu_edit.add(menuItem_new_user);


         


         


         


JMenuItem menuItem_help = new JMenuItem("帮助文档(H)",new ImageIcon("help.png"));


menuItem_help.setMnemonic('S');


menuItem_help.setAccelerator(


    KeyStroke.getKeyStroke(


        KeyEvent.VK_S,


        InputEvent.CTRL_MASK));


menuItem_help.addActionListener(listener);


JMenuItem menuItem_about = new JMenuItem("关于(T)",new ImageIcon("about.png"));


menuItem_about.setMnemonic('T');


menuItem_about.setAccelerator(


    KeyStroke.getKeyStroke(


        KeyEvent.VK_T,


        InputEvent.CTRL_MASK));


menuItem_about.addActionListener(listener);


menu_help.add(menuItem_help);


menu_help.addSeparator();


menu_help.add(menuItem_about);


this.setLayout(new BorderLayout());


   //添加面板                            


JPanel northPanel = new JPanel();


JPanel southPanel = new JPanel();


this.add(northPanel,BorderLayout.NORTH);


this.add(southPanel,BorderLayout.CENTER);


northPanel.setLayout(new BorderLayout());


southPanel.setLayout(new BorderLayout());


//设置工具箱


JToolBar toolBar = new JToolBar();


toolBar.setEnabled(false);


JButton button_add =new JButton(new ImageIcon("add.png"));


button_add.setToolTipText("添书");


button_add.setActionCommand("添书(A)");


toolBar.add(button_add);


button_add.addActionListener(listener);


JButton button_add_class = new JButton(new ImageIcon("add_class.png"));


button_add_class.setToolTipText("添类");


button_add_class.setActionCommand("添类(C)");


toolBar.add(button_add_class);


button_add_class.addActionListener(listener);


JButton button_search =new JButton(new ImageIcon("search.png"));


button_search.setToolTipText("查询");


button_search.setActionCommand("查询(S)");


toolBar.add(button_search);


button_search.addActionListener(listener);


JButton button_del =new JButton(new ImageIcon("del.png"));


button_del.setToolTipText("借出");


button_del.setActionCommand("借出(B)");


toolBar.add(button_del);


button_del.addActionListener(listener);


         


JButton button_print = new JButton(new ImageIcon("print.png"));


button_print.setToolTipText("打印");


button_print.setActionCommand("打印(P)");


toolBar.add(button_print);


button_print.addActionListener(listener);


JButton button_refresh =new JButton(new ImageIcon("refresh.png"));


button_refresh.setToolTipText("刷新");


button_refresh.setActionCommand("刷新(R)");


toolBar.add(button_refresh);


button_refresh.addActionListener(listener);


northPanel.add(toolBar,BorderLayout.WEST);


     


//添加右键菜单


pop = new JPopupMenu();


southPanel.setComponentPopupMenu(pop);


pop_add = new JMenuItem("添书(A)",new ImageIcon("add.png"));


pop_add.addActionListener(listener);


pop_add_class = new JMenuItem("添类(C)");


pop_add_class.addActionListener(listener);


pop_search = new JMenuItem("查询(S)",new ImageIcon("search.png"));


pop_search.addActionListener(listener);


pop_del = new JMenuItem("借出(B)",new ImageIcon("del.png"));


pop_del.addActionListener(listener);


pop_exit = new JMenuItem("退出(E)",new ImageIcon("exit.png"));


pop_exit.addActionListener(listener);


pop.add(pop_add);


pop.add(pop_search);


pop.add(pop_del);


pop.add(pop_exit);


southPanel.addMouseListener(new MouseListener(){

public void mouseClicked(MouseEvent event) {

}


public void mouseEntered(MouseEvent event) {

}




public void mouseExited(MouseEvent event) {

}


        public void mousePressed(MouseEvent event) {

             


}




public void mouseReleased(MouseEvent event) {

if(pop.isPopupTrigger(event))


                pop.show(LibraryMainF.this,event.getX(),event.getY());


}


});


//创建 图书分类的下拉列表


File file_Library= new File("E:\\图书管理系统\\分类");


file_class = file_Library.listFiles();


comBo= new JComboBox(file_class);


comBo.setSelectedItem("E:\\图书管理系统\\分类\\文学");


 northPanel.add(comBo,BorderLayout.EAST);


comBo.addActionListener(new ActionListener()


{

public void actionPerformed(ActionEvent e)


{

}


});



 


 


 



//       根据数据模型创建二维表格


  table_MainF = new JTable(initTabelModel());


//      为二维表格添加滚动窗格


  js = new JScrollPane(table_MainF);




//      设置主界面中的二维表格中被选中的行的前景色


  table_MainF.setSelectionForeground(Color.ORANGE) ;


//     设置列为不可拖动


  table_MainF.getTableHeader().setReorderingAllowed(false);


  setAlternateColor(table_MainF);


//     将滚动窗格添加入面板


  southPanel.add(js,BorderLayout.CENTER);


 


}


  ActionListener listener = new ActionListener() {

  public void actionPerformed(ActionEvent e) {

 


 


   if(e.getActionCommand().equals("退出")||e.getActionCommand().equals("退出(E)"))


  {

   System.exit(0);


  }else if(e.getActionCommand().equals("显示主界面"))


  {

   LibraryMainF.this.setVisible(true);


  }else if(e.getActionCommand().equals("添书(A)"))


  {

   AddBookFrame abf= new AddBookFrame();


   abf.setVisible(true);


  }else if (e.getActionCommand().equals("添类(C)"))


   {

   JLabel label = new JLabel("请输入需要添加的图书分类:");



   String  selection = JOptionPane.showInputDialog(pop_add_class,label, "图书管理系统-添加图书分类", JOptionPane.OK_CANCEL_OPTION);




    if(selection.equals(str_null))


      {

       JLabel label_result = new JLabel("你输入的书籍分类为空,请重新输入!!");


JOptionPane.showConfirmDialog(pop_add_class, label_result,"图书管理系统-加添分类—输入为空", JOptionPane.INFORMATION_MESSAGE,JOptionPane.OK_OPTION, new ImageIcon("null.png"));


      }else


      {

      File f_class = new File("E:\\图书管理系统\\分类\"+selection);


   



            if(f_class .exists())//如果分类已经存在给予提示


      {

       JLabel label_result = new JLabel("你输入的书籍分类已存在!!");


JOptionPane.showConfirmDialog(pop_add_class, label_result,"图书管理系统-分类已存在", JOptionPane.WARNING_MESSAGE,JOptionPane.OK_OPTION , new ImageIcon("result.png"));


      }


 




            if(!f_class .exists()){//添加的分类不存在的时候 进行添加


       f_class .mkdir();


      File f_book = new File("E:\\图书管理系统\\分类\"+selection+"\"+"bookinfo.dat");


      File f_book_num = new File("E:\\图书管理系统\\分类\"+selection+"\"+"booknum.dat");


   


try {

FileWriter fo = new FileWriter(f_book);


String str = "";


fo.write(str);


fo.close();


} catch (IOException e1) {

e1.printStackTrace();


}


   




//        初始化booknum.dat


      int num = 0;


try {

FileOutputStream fo = new FileOutputStream(f_book_num);


  ObjectOutputStream oos = new ObjectOutputStream(fo);


  oos.writeInt(num);


  oos.close();


} catch (FileNotFoundException e1) {

e1.printStackTrace();


}catch (IOException e5) {

System.out.println("初始化写入异常");


e5.printStackTrace();


}


JLabel label_result = new JLabel(selection+"分类创建成功!!");


JOptionPane.showConfirmDialog(pop_add_class, label_result,"图书管理系统-添加成功", JOptionPane.INFORMATION_MESSAGE,JOptionPane.OK_OPTION, new ImageIcon("succes.png"));


      }}}


 


 


 


  else if(e.getActionCommand().equals("查询(S)"))


  {

   SearchFrame sf = new SearchFrame();


   sf.setVisible(true);


  }else if(e.getActionCommand().equals("借出(B)"))


  {

 


  }else if(e.getActionCommand().equals("打印(P)"))


  {

   try {

table_MainF.print();


} catch (PrinterException e1) {

e1.printStackTrace();


}


 


 


  }else if(e.getActionCommand().equals("改密(W)"))


  {

   EditpassW edit_pass_word = new EditpassW();


   edit_pass_word.setVisible(true);


  }else if (e.getActionCommand().equals("新用户(N)"))


  {

   AddUserFrame addFrame =new AddUserFrame();


   addFrame.setVisible(true);


  }


  else if(e.getActionCommand().equals("刷新(R)"))


  {

 


 


   }else if(e.getActionCommand().equals("关于(T)"))


  {

   AboutFrame af = new AboutFrame();


   System.out.println("he");


   af.setVisible(true);


  }} };


     


     


      //获得下拉列表的选项


  public File getClassName()


{

 


  return (File)comBo.getSelectedItem();



}


 


 


  //实现隔一行换一个背景色 的功能


  public void setAlternateColor(JTable table)


  {

   //构造渲染器


    DefaultTableCellRenderer cellRenderer = new DefaultTableCellRenderer()


  {

 


private static final long serialVersionUID = 1L;




public  Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)


   {

if(row%2==0)


{

this.setBackground(Color.PINK);


}else


this.setBackground(Color.WHITE);


   return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);


 


   }


 




  };


//  对每一行运用渲染器


  for (int i = 0 ;i<table_MainF.getColumnCount();i++)


  {

   TableColumn column = table.getColumn(table.getColumnName(i));


   column.setCellRenderer(cellRenderer);


 


  }


  }


 


 


  public TableModel initTabelModel()


  {

 


   Book book_read;


//     首先读取该分类下的书籍对象个数的文件 读取对象个数


   File  file_book_num= new File("E:\\图书管理系统\\分类\\书法\\booknum.dat");


 


 


try {

FileInputStream fi = new FileInputStream(file_book_num);


ObjectInputStream oi = new ObjectInputStream(fi);


System.out.println(num);


num =oi.readInt();


System.out.println(num);



fi.close();


   oi.close();


 }


catch (FileNotFoundException e1) {

e1.printStackTrace();


}catch(InvalidClassException  e4)


{

e4.printStackTrace();


}catch(StreamCorruptedException e5)


{

e5.printStackTrace();


}


catch (IOException e1) {

e1.printStackTrace();


}



 


 


 


if(num!=0){

   data = new Object[num][5];//存放分类下的书籍信息


   Object [] clumnNames = {"编号","书名 ","作者","出版社","数量"};


 


 


 


// 读取书籍信息的文件


File file_book_info = new File("E:\\图书管理系统\\分类\\书法\\bookinfo.dat");


try {

FileInputStream fis = new FileInputStream(file_book_info);


   


ObjectInputStream ois = new ObjectInputStream(fis);


 int j=0;



   while(j<num)


{

 book_read = (Book)ois.readObject();


 


 


 


// 将书籍数据遍历 存放到temp数组中 然后传入data


 


       


     


     Object [] temp2 = new Object[]{book_read.getNumber(),book_read.getName(),book_read.getAuthor(),book_read.getPress(),book_read.getCount()};      


 data[j]= temp2;      


     j++;


 


            }


   


 


   


   


 




model_default  = new DefaultTableModel(data,clumnNames);




} catch (ClassNotFoundException e1) {

e1.printStackTrace();


}catch (FileNotFoundException e2) {

e2.printStackTrace();


} catch (IOException e2) {

e2.printStackTrace();


}


 


}




if(num==0)


{

model_default = new DefaultTableModel();


   data = new Object[1][];//存放分类下的书籍信息


   Object [] clumnNames = {"编号","书名 ","作者","出版社","数量"};


 


 


Object[] temp = new Object[]{"","","","","",""};


data[0]= temp;




model_default  = new DefaultTableModel(data,clumnNames);


}


 


return model_default ;


 


  }


private File[] file_class ;


private JTable table_MainF;


private JMenuItem menuItem_add;


private JMenuItem menuItem_search ;


private JMenuItem menuItem_del;


private JMenuItem menuItem_print;


private JMenuItem menuItem_exit ;


   private JMenuItem menuItem_add_class;


private JMenuItem pop_add;//右键菜单


private JMenuItem pop_add_class;


private JMenuItem pop_search;


private JMenuItem pop_del;


private JMenuItem pop_exit;


private JPopupMenu pop ;


private JScrollPane js;


private JComboBox comBo;


;


private Book book_main;


private TableModel model;


TableModel model_default;


private Object[][] book;


private Object [][] data ;


private int num =0;



private String str_null ="";


}


————————————————

版权声明:本文为CSDN博主「明明如月学长」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/w605283073/article/details/46572399

相关文章
图书管理系统代码&nbsp;&nbsp;8AddBookFrame&nbsp;…
图书管理系统代码&nbsp;&nbsp;8AddBookFrame&nbsp;…
116 0
图书管理系统代码&nbsp;6&nbsp;AboutFrame&nbsp;(…
图书管理系统代码&nbsp;6&nbsp;AboutFrame&nbsp;(…
156 0
|
数据安全/隐私保护
图书管理系统代码&nbsp;&nbsp;2&nbsp;LibraryMain&nbsp;…
图书管理系统代码&nbsp;&nbsp;2&nbsp;LibraryMain&nbsp;…
121 0
|
Java
图书管理系统代码&nbsp;4SearchFrame&nbsp;(…
图书管理系统代码&nbsp;4SearchFrame&nbsp;(…
114 0
图书管理系统代码&nbsp;7GBC&nbsp;&nbsp;网格组布…
图书管理系统代码&nbsp;7GBC&nbsp;&nbsp;网格组布…
113 0
|
SQL Java 数据库连接
数据库访问大段文本数据&nbsp;&nbsp;(myqsl&nbsp;…
数据库访问大段文本数据 myqsl + jdbc +java-io
123 0
文件切割合并器&nbsp;&nbsp;1&nbsp;主类&nbsp;&nbsp;SplitAnd…
文件切割合并器&nbsp;&nbsp;1&nbsp;主类&nbsp;&nbsp;SplitAnd…
126 0
图书管理系统&nbsp;出现的问题
图书管理系统&nbsp;出现的问题
127 0
|
PHP
刘道成&nbsp;&nbsp;mysql&nbsp;视频教程&nbsp;&nbsp;配套材料
刘道成&nbsp;&nbsp;mysql&nbsp;视频教程&nbsp;&nbsp;配套材料
139 0
文件切割合并器&nbsp;6&nbsp;&nbsp;GBC&nbsp;简化
文件切割合并器&nbsp;6&nbsp;&nbsp;GBC&nbsp;简化
110 0