图书管理系统代码  3 LibraryMainF…

来源:互联网 发布:软件防火墙有哪些 编辑:程序博客网 时间:2024/06/06 03:01

图书管理系统代码 <wbr> <wbr>3 <wbr>LibraryMainF <wbr> <wbr>(主界面)图书管理系统代码 <wbr> <wbr>3 <wbr>LibraryMainF <wbr> <wbr>(主界面)



图书管理系统代码 <wbr> <wbr>3 <wbr>LibraryMainF <wbr> <wbr>(主界面)

图书管理系统代码 <wbr> <wbr>3 <wbr>LibraryMainF <wbr> <wbr>(主界面)

图书管理系统代码 <wbr> <wbr>3 <wbr>LibraryMainF <wbr> <wbr>(主界面)

图书管理系统代码 <wbr> <wbr>3 <wbr>LibraryMainF <wbr> <wbr>(主界面)


图书管理系统代码 <wbr> <wbr>3 <wbr>LibraryMainF <wbr> <wbr>(主界面)

图书管理系统代码 <wbr> <wbr>3 <wbr>LibraryMainF <wbr> <wbr>(主界面)

图书管理系统代码 <wbr> <wbr>3 <wbr>LibraryMainF <wbr> <wbr>(主界面)

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  extendsInitFrame

{

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  = newTrayIcon(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)",newImageIcon("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)",newImageIcon("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)",newImageIcon("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)",newImageIcon("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)",newImageIcon("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)",newImageIcon("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)",newImageIcon("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);

          

          

          

           JMenuItemmenuItem_new_user = new JMenuItem("新用户(N)",newImageIcon("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)",newImageIcon("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)",newImageIcon("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(newImageIcon("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(newImageIcon("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(newImageIcon("print.png"));

button_print.setToolTipText("打印");

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

toolBar.add(button_print);

button_print.addActionListener(listener);

JButton button_refresh =new JButton(newImageIcon("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)",newImageIcon("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 voidmousePressed(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 = newJTable(initTabelModel());

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

   js = newJScrollPane(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 voidactionPerformed(ActionEvent e) {

   

   

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

   {

    System.exit(0);

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

   {

   LibraryMainF.this.setVisible(true);

   }elseif(e.getActionCommand().equals("添书(A)"))

   {

    AddBookFrame abf= newAddBookFrame();

    abf.setVisible(true);

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

    {

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

 

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


    if(selection.equals(str_null))

      {

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

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

      }else

      {

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

      

 

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

      {

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

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

      }

     


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

       f_class .mkdir();

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

      File f_book_num = newFile("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, newImageIcon("succes.png"));

      }}}

   

   

   

   elseif(e.getActionCommand().equals("查询(S)"))

   {

    SearchFrame sf = newSearchFrame();

    sf.setVisible(true);

   }elseif(e.getActionCommand().equals("借出(B)"))

   {

   

   }elseif(e.getActionCommand().equals("打印(P)"))

   {

    try {

table_MainF.print();

} catch (PrinterException e1) {

e1.printStackTrace();

}

   

   

   }elseif(e.getActionCommand().equals("改密(W)"))

   {

    EditpassW edit_pass_word =new EditpassW();

   edit_pass_word.setVisible(true);

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

   {

    AddUserFrame addFrame =newAddUserFrame();

   addFrame.setVisible(true);

   }

   elseif(e.getActionCommand().equals("刷新(R)"))

   {

   

   

    }elseif(e.getActionCommand().equals("关于(T)"))

   {

    AboutFrame af = newAboutFrame();

   System.out.println("he");

    af.setVisible(true);

   }} };

       

       

      //获得下拉列表的选项

   public FilegetClassName()

{

   

   return(File)comBo.getSelectedItem();

 

}

   

   

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

   public voidsetAlternateColor(JTable table)

   {

    //构造渲染器

    DefaultTableCellRenderer cellRenderer = newDefaultTableCellRenderer()

   {

   

private static final long serialVersionUID = 1L;


public  ComponentgetTableCellRendererComponent(JTable table, Object value, booleanisSelected, boolean hasFocus, int row, intcolumn) 

    {

if(row%2==0)

{

this.setBackground(Color.PINK);

}else

this.setBackground(Color.WHITE);

    returnsuper.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 TableModelinitTabelModel()

   {

   

    Book book_read;

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

    File file_book_num= newFile("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 = newObject[num][5];//存放分类下的书籍信息

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

   

   

   

// 读取书籍信息的文件

File file_book_info = newFile("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 = newObject[]{book_read.getNumber(),book_read.getName(),book_read.getAuthor(),book_read.getPress(),book_read.getCount()};     

  data[j]= temp2;      

     j++;

     

           }

     

   

     

     

     


model_default  = newDefaultTableModel(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 = newObject[1][];//存放分类下的书籍信息

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

   

   

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

data[0]= temp;


model_default  = newDefaultTableModel(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 JMenuItemmenuItem_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 ="";

}


0 0
原创粉丝点击