Java学习day101 Java图书管理系统GUI编程
发布日期:2021-06-29 11:49:44 浏览次数:2 分类:技术文章

本文共 6312 字,大约阅读时间需要 21 分钟。

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

图书管理系统需求:

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

        

操作系统:Windows10

开发工具:Eclipse

数据库:MySQL5.6

创建MySQL数据库library

下面是各个表:

运行程序:

登录界面:

                 

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

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

                           

 

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

              

C.输入的密码错误

             

D.退出时提醒

               

登录成功后进入主界面

部分子菜单

添加订阅者信息界面

部分代码如下:

/** * 主窗体 *  */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有了更深刻的理解,也让我学会了很多东西并对面向对象有了更深的认识。其中用到的知识虽然大部分都已经在书上过,但真正实践起来才发现自己还是有很多不足,于是我又将书本中的知识重新回炉了一遍,加深了对课本知识的理解,更明白监听器的工作原理。通过对不同事件进行监听去做出相应的不同的操作。

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

转载地址:https://blog.csdn.net/Zzehao11/article/details/106024254 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Python实验:循环结构程序设计、字符串的应用、列表与元组的应用
下一篇:Java学习day100 并发(十)(线程与Swing:运行耗时的任务、使用Swing工作线程、单一线程规则)

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月08日 04时51分17秒