📄 booksystem.java
字号:
package frame;import java.util.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import book.*;import userexception.*;public class BookSystem{ private JTabbedPane tabPane; private BookList booklist; private LendList lendlist; private BookTableModel bltm = null; private BookTableModel lltm = null; //constructor public BookSystem() { tabPane = new JTabbedPane(); booklist = BookList.getInstance(); lendlist = LendList.getInstance(); } //method to generate the main GUI public JFrame createGUI() { final JFrame f = new JFrame("Book Management System Ver 0.1"); //create menu items JMenuItem mnuAddBook = new JMenuItem("Add Book"); JMenuItem mnuSearch = new JMenuItem("Search"); JMenuItem mnuModify = new JMenuItem("Modify"); JMenuItem mnuLend = new JMenuItem("Lend"); JMenuItem mnuReturn = new JMenuItem("Return"); JMenuItem mnuSeeBookList = new JMenuItem("BookList"); JMenuItem mnuSeeLendList = new JMenuItem("LendList"); JMenuItem mnuExit = new JMenuItem("Exit"); JMenu file = new JMenu("File"); JMenu op = new JMenu("Operation"); JMenu view = new JMenu("View"); JMenuBar bar = new JMenuBar(); file.add(mnuExit); mnuExit.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ System.exit(0); } }); op.add(mnuAddBook); mnuAddBook.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ addBook(f, booklist, bltm); } }); op.add(mnuSearch); mnuSearch.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ search(f, booklist, bltm); } }); op.add(mnuModify); mnuModify.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ modify(); } }); op.add(mnuLend); mnuLend.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ lend(); } }); op.add(mnuReturn); mnuReturn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ returnBook(); } }); view.add(mnuSeeBookList); mnuSeeBookList.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ seeBookList(); } }); view.add(mnuSeeLendList); mnuSeeLendList.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ seeLendList(); } }); bar.add(file); bar.add(op); bar.add(view); //init main frame f.setDefaultLookAndFeelDecorated(false); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setJMenuBar(bar); Container container = f.getContentPane(); tabPane.addTab("BookList", null, bookListTab(), "Does nothing"); tabPane.addTab("LendList",null,lendListTab(),"Does nothing"); container.add(tabPane); f.pack(); f.setSize(f.getSize().width,f.getSize().height + 300); f.setResizable(false); //f.setSize(500,600); return f; } //method to generate lend list tab public JPanel lendListTab() { JPanel pane = new JPanel(new FlowLayout()); HashSet books = new HashSet(); lltm = getBookListModel(books); lltm.addTableModelListener(new BookTableModelListener(lltm, booklist, lendlist)); JTable t = new JTable(lltm); pane.add(t); return pane; } //method to generate book list tab public JPanel bookListTab() { JPanel pane = new JPanel(new FlowLayout()); HashSet books = booklist.getBooks(); bltm = getBookListModel(books); bltm.addTableModelListener(new BookTableModelListener(bltm, booklist, lendlist)); JTable t = new JTable(bltm); pane.add(t); return pane; } //method to add a book; public void addBook(JFrame f, BookList bl, BookTableModel tm) { new AddNewDlg(f, bl, tm); } //method to search a book; public void search(JFrame f, BookList bl, BookTableModel tm) { new SearchDlg(f, bl, tm); } //method to lend a book; public void lend() { } //method to return a book; public void returnBook() { } //method to modify a book public void modify() { } //method to see book list public void seeBookList() { } //method to see lend book list public void seeLendList() { } //method to generate the required data for the book list or lend list. public BookTableModel getBookListModel(HashSet books) { //init data String names[] = {Book.KEY, Book.NAME, Book.AUTHOR, Book.TYPE, Book.COST, Book.PUBLISH}; return BookTableModel.getBookModel(books, names); } //main public static void main(String args[]) { BookSystem sys = new BookSystem(); JFrame f = sys.createGUI(); f.show(); }}/*** class AddNewDlg*/class AddNewDlg extends JDialog{ BookList bl = null; BookTableModel tm = null; public AddNewDlg(JFrame f, BookList bl, BookTableModel tm) { super(f); this.bl = bl; this.tm = tm; createGUI(); } public void createGUI() { final JTextField txtName = new JTextField(10); final JTextField txtAuthor = new JTextField(10); final JTextField txtType = new JTextField(10); final JTextField txtCost = new JTextField(10); final JTextField txtPublish = new JTextField(10); JButton btnAdd = new JButton("Accept"); btnAdd.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ if(!(txtName.getText().equals("") || txtAuthor.getText().equals("") ||txtType.getText().equals("") ||txtCost.getText().equals("") || txtPublish.getText().equals("") )) doAdd(txtName.getText(), txtAuthor.getText(), txtType.getText(),txtCost.getText(),txtPublish.getText()); } }); JPanel pane = new JPanel(new FlowLayout(5,1,5)); pane.add(new JLabel("Name:")); pane.add(txtName); pane.add(new JLabel("Author:")); pane.add(txtAuthor); pane.add(new JLabel("Type:")); pane.add(txtType); pane.add(new JLabel("Cost:")); pane.add(txtCost); pane.add(new JLabel("Publish:")); pane.add(txtPublish); Container c = getContentPane(); c.add(pane,BorderLayout.CENTER); c.add(btnAdd,BorderLayout.SOUTH); // setDefaultCloseOperation(); pack(); show(); } //method to add a book; public void doAdd(String n, String a, String t, String c, String p) { Book bk = new Book(bl.makeNo(), n, a, Integer.parseInt(t), Double.parseDouble(c), p); try { bl.addBook(bk); }catch (AddException e) {} tm.insertRow(tm.getRowCount(), tm.genRowData(bk)); System.out.println(bk); } }/*** class SearchDlg */class SearchDlg extends JDialog { BookList bl = null; BookTableModel tm = null; public SearchDlg(JFrame f, BookList bl, BookTableModel tm) { super(f); this.bl = bl; this.tm = tm; createGUI(); } public void createGUI() { final JTextField txtName = new JTextField(10); final JTextField txtAuthor = new JTextField(10); final JTextField txtType = new JTextField(10); final JTextField txtPublish = new JTextField(10); JButton btnAdd = new JButton("Accept"); btnAdd.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ if(!(txtName.getText().equals("") && txtAuthor.getText().equals("") && txtType.getText().equals("") && txtPublish.getText().equals(""))) doQuery(txtName.getText(), txtAuthor.getText(), Integer.parseInt(txtType.getText()),txtPublish.getText()); } }); JPanel pane = new JPanel(new FlowLayout(5,5,1)); pane.add(new JLabel("Name:")); pane.add(txtName); pane.add(new JLabel("Author:")); pane.add(txtAuthor); pane.add(new JLabel("Type:")); pane.add(txtType); pane.add(new JLabel("Publish:")); pane.add(txtPublish); Container c = getContentPane(); c.add(new JLabel("<HTML><font style='font-size:20px;color:red'>Query Input:</font></HTML>"),BorderLayout.NORTH); c.add(pane,BorderLayout.CENTER); c.add(btnAdd,BorderLayout.SOUTH); // setDefaultCloseOperation(); pack(); setLocation(200,200); show(); } //method to add a book; public void doQuery(String n, String a, int t, String p) { Collection al = null; try { al = bl.query(n, a, t, p); }catch (BookNotFoundException e) {} //remove all for(int i = 0; i < tm.getRowCount(); i++) tm.removeRow(i); /* //add result Iterator i = al.iterator(); int rowCnt = 0; Book bk = null; while(i.hasNext()) { bk = (Book)i.next(); tm.insertRow(rowCnt++, tm.genRowData(bk)); } */ //System.out.println(bk); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -