Java学习day101 Java图书管理系统GUI编程

前面一直在看书本以及视频学习,课程上跟着老师也写一些练习代码,但是没有总结所有知识,于是写了一个图书管理系统,也练习一下数据库的知识。

图书管理系统需求:

在图书管理系统中,要为每个借阅者建立一个帐户,并给借阅者发放借阅卡,帐户中存储借阅者的个人信息、借阅者信息以及预定信息。持有借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预定。在借阅书刊时,需要输入所借阅的书刊名、书刊的ISBN/ISSN[2]号,然后输入借阅者的图书卡号和借阅者名,完成提交所填表格,系统验证借阅者是否有效(在系统中存在帐户),若有效,借阅请求被接受,系统查询数据库系统,看借阅者所借阅的书刊是否存在,若存在,则借阅者可借出书刊,建立并在系统中存储借阅记录。借阅者还书后,删除关于所还书刊的借阅记录。如果借阅者所借的书刊被借出,借阅者还可以预定该书刊,一旦借阅者预定的书刊可以获得,就将书刊直接寄给预订人(为了简化系统,暂时假定预定书刊可获得时就不通知借阅者了;也暂不考虑书刊的最长借阅期限,假设借阅者可以无限期地保存所借阅的书刊)

        Java学习day101 Java图书管理系统GUI编程_第1张图片

操作系统:Windows10

开发工具:Eclipse

数据库:MySQL5.6

创建MySQL数据库library

Java学习day101 Java图书管理系统GUI编程_第2张图片

下面是各个表:

Java学习day101 Java图书管理系统GUI编程_第3张图片

运行程序:

登录界面:

                 Java学习day101 Java图书管理系统GUI编程_第4张图片

此系统只有一个用户名和密码。满足要求的各种判断方式

A.没有输入用户名或密码

                           Java学习day101 Java图书管理系统GUI编程_第5张图片

 

B.输入用户名或密码有特殊符号

              Java学习day101 Java图书管理系统GUI编程_第6张图片

C.输入的密码错误

             Java学习day101 Java图书管理系统GUI编程_第7张图片

D.退出时提醒

               Java学习day101 Java图书管理系统GUI编程_第8张图片

登录成功后进入主界面

Java学习day101 Java图书管理系统GUI编程_第9张图片

部分子菜单

Java学习day101 Java图书管理系统GUI编程_第10张图片

添加订阅者信息界面

Java学习day101 Java图书管理系统GUI编程_第11张图片

部分代码如下:

/**
 * 主窗体
 * 
 */
public class Library extends JFrame {
	private static final JDesktopPane DESKTOP_PANE = new JDesktopPane();
	public static void main(String[] args) {
		
		try {
			UIManager.setLookAndFeel(UIManager
					.getSystemLookAndFeelClassName());
			new BookLoginIFrame();//登录窗口
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
	public static void addIFame(JInternalFrame iframe) { // 添加子窗体的方法
		DESKTOP_PANE.add(iframe);
	}
	public Library() {
		super();
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		setLocationByPlatform(true);
		setSize(800, 600);
		setTitle("图书管理系统");
		JMenuBar menuBar = createMenu(); 
		setJMenuBar(menuBar);
		JToolBar toolBar = createToolBar();
		getContentPane().add(toolBar, BorderLayout.NORTH);
		final JLabel label = new JLabel();
		label.setBounds(0, 0, 0, 0);
		label.setIcon(null); 

		DESKTOP_PANE.addComponentListener(new ComponentAdapter() {
			public void componentResized(final ComponentEvent e) {
				Dimension size = e.getComponent().getSize();
				label.setSize(e.getComponent().getSize());
				label.setText("");
			}
		});
		DESKTOP_PANE.add(label,new Integer(Integer.MIN_VALUE));
		getContentPane().add(DESKTOP_PANE);
	}
	/**
	 * 创建工具栏
	 * 
	 * @return JToolBar
	 */
	private JToolBar createToolBar() { // 创建工具栏的方法
		JToolBar toolBar = new JToolBar();
		toolBar.setFloatable(false);
		toolBar.setBorder(new BevelBorder(BevelBorder.RAISED));
		
		JButton bookAddButton=new JButton(MenuActions.BOOK_ADD);
		ImageIcon icon=new ImageIcon(Library.class.getResource("/bookAddtb.jpg"));//添加菜单栏图标	
		bookAddButton.setIcon(icon);
		bookAddButton.setHideActionText(true);
		
		toolBar.add(bookAddButton);
		
		//在工具栏中添加图书修改与删除图标
		JButton bookModiAndDelButton=new JButton(MenuActions.BOOK_MODIFY);
		ImageIcon bookmodiicon=CreatecdIcon.add("bookModiAndDeltb.jpg");//创建图标方法
		bookModiAndDelButton.setIcon(bookmodiicon);
		bookModiAndDelButton.setHideActionText(true);
		toolBar.add(bookModiAndDelButton);
		
		
		
		
		JButton bookTypeAddButton=new JButton(MenuActions.BOOKTYPE_ADD);
		ImageIcon bookTypeAddicon=CreatecdIcon.add("bookTypeAddtb.jpg");//创建图标方法
		bookTypeAddButton.setIcon(bookTypeAddicon);
		bookTypeAddButton.setHideActionText(true);
		toolBar.add(bookTypeAddButton);
		
		
		JButton bookBorrowButton=new JButton(MenuActions.BORROW);
		ImageIcon bookBorrowicon=CreatecdIcon.add("bookBorrowtb.jpg");//创建图标方法
		bookBorrowButton.setIcon(bookBorrowicon);
		bookBorrowButton.setHideActionText(true);
		toolBar.add(bookBorrowButton);
		
		JButton bookOrderButton=new JButton(MenuActions.NEWBOOK_ORDER);
		ImageIcon bookOrdericon=CreatecdIcon.add("bookOrdertb.jpg");//创建图标方法
		bookOrderButton.setIcon(bookOrdericon);
		bookOrderButton.setHideActionText(true);
		toolBar.add(bookOrderButton);
		
		JButton bookCheckButton=new JButton(MenuActions.NEWBOOK_CHECK_ACCEPT);
		ImageIcon bookCheckicon=CreatecdIcon.add("newbookChecktb.jpg");//创建图标方法
		bookCheckButton.setIcon(bookCheckicon);
		bookCheckButton.setHideActionText(true);
		toolBar.add(bookCheckButton);
		
		JButton readerAddButton=new JButton(MenuActions.READER_ADD);
		ImageIcon readerAddicon=CreatecdIcon.add("readerAddtb.jpg");//创建图标方法
		readerAddButton.setIcon(readerAddicon);
		readerAddButton.setHideActionText(true);
		toolBar.add(readerAddButton);
		
		JButton readerModiAndDelButton=new JButton(MenuActions.READER_MODIFY);
		ImageIcon readerModiAndDelicon=CreatecdIcon.add("readerModiAndDeltb.jpg");//创建图标方法
		readerModiAndDelButton.setIcon(readerModiAndDelicon);
		readerModiAndDelButton.setHideActionText(true);
		toolBar.add(readerModiAndDelButton);
		
		JButton ExitButton=new JButton(MenuActions.EXIT);
		ImageIcon Exiticon=CreatecdIcon.add("exittb.jpg");//创建图标方法
		ExitButton.setIcon(Exiticon);
		ExitButton.setHideActionText(true);
		toolBar.add(ExitButton);
		return toolBar;
	}
	/**
	 * 创建菜单栏
	 */
	private JMenuBar createMenu() { // 创建菜单栏的方法
		JMenuBar menuBar = new JMenuBar();

		JMenu bookOrderMenu = new JMenu(); // 初始化新书订购管理菜单
		bookOrderMenu.setIcon(CreatecdIcon.add("xsdgcd.jpg"));
		bookOrderMenu.add(MenuActions.NEWBOOK_ORDER);
		bookOrderMenu.add(MenuActions.NEWBOOK_CHECK_ACCEPT);

		 
		JMenu baseMenu = new JMenu();// 初始化基础数据维护菜单
		baseMenu.setIcon(CreatecdIcon.add("jcsjcd.jpg"));
		{
			JMenu readerManagerMItem = new JMenu("订阅者信息管理");
			readerManagerMItem.add(MenuActions.READER_ADD);
			readerManagerMItem.add(MenuActions.READER_MODIFY);

			JMenu bookTypeManageMItem = new JMenu("图书类别管理");
			bookTypeManageMItem.add(MenuActions.BOOKTYPE_ADD);
			bookTypeManageMItem.add(MenuActions.BOOKTYPE_MODIFY);

			JMenu menu = new JMenu("图书信息管理");
			menu.add(MenuActions.BOOK_ADD);
			menu.add(MenuActions.BOOK_MODIFY);

			baseMenu.add(readerManagerMItem);
			baseMenu.add(bookTypeManageMItem);
			baseMenu.add(menu);
			baseMenu.addSeparator();
			baseMenu.add(MenuActions.EXIT);
		}
		JMenu borrowManageMenu = new JMenu(); 
		borrowManageMenu.setIcon(CreatecdIcon.add("jyglcd.jpg"));
		borrowManageMenu.add(MenuActions.BORROW); 
		borrowManageMenu.add(MenuActions.GIVE_BACK); 
		borrowManageMenu.add(MenuActions.BOOK_SEARCH); 

		JMenu sysManageMenu = new JMenu(); 
		sysManageMenu.setIcon(CreatecdIcon.add("jcwhcd.jpg"));
		JMenu userManageMItem = new JMenu("用户管理"); 
		userManageMItem.add(MenuActions.USER_ADD);
		userManageMItem.add(MenuActions.USER_MODIFY);
		sysManageMenu.add(MenuActions.MODIFY_PASSWORD);
		sysManageMenu.add(userManageMItem);

		menuBar.add(baseMenu); 
		menuBar.add(bookOrderMenu); 
		menuBar.add(borrowManageMenu);
		menuBar.add(sysManageMenu);
		return menuBar;
	}
}

 

 


做完这个系统感觉自己总体上收获还是挺大的,系统主要实现了图书管理的功能,从需求分析,界面的搭建、美化,再到数据库的连接,表格,存储过程和存储过程等的建立。一系列的过程步骤让我对于Java + MySQL有了更深刻的理解,也让我学会了很多东西并对面向对象有了更深的认识。其中用到的知识虽然大部分都已经在书上过,但真正实践起来才发现自己还是有很多不足,于是我又将书本中的知识重新回炉了一遍,加深了对课本知识的理解,更明白监听器的工作原理。通过对不同事件进行监听去做出相应的不同的操作。

上面只是部分界面和部分代码,有需要源码可私信。

你可能感兴趣的:(Java基础学习)