⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.java

📁 海天图书馆管理系统 使用Java开发
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package net.sfte.htlibrary.ui;

import java.awt.BorderLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;

import net.sfte.htlibrary.ui.action.AboutAction;
import net.sfte.htlibrary.ui.action.AdminSettingAction;
import net.sfte.htlibrary.ui.action.BookStatisticAction;
import net.sfte.htlibrary.ui.action.BorrowBookAction;
import net.sfte.htlibrary.ui.action.ChangeImageAction;
import net.sfte.htlibrary.ui.action.ChangePasswordAction;
import net.sfte.htlibrary.ui.action.ChangeStatusBarAction;
import net.sfte.htlibrary.ui.action.CheckStorageAction;
import net.sfte.htlibrary.ui.action.DeleteReaderAction;
import net.sfte.htlibrary.ui.action.ExitAction;
import net.sfte.htlibrary.ui.action.GiveBackBookAction;
import net.sfte.htlibrary.ui.action.HangupAction;
import net.sfte.htlibrary.ui.action.LibraryInfoAction;
import net.sfte.htlibrary.ui.action.ListOrderAction;
import net.sfte.htlibrary.ui.action.LossBookAction;
import net.sfte.htlibrary.ui.action.LostBookQueryAction;
import net.sfte.htlibrary.ui.action.ModifyBookAction;
import net.sfte.htlibrary.ui.action.ModifyReaderAction;
import net.sfte.htlibrary.ui.action.NewBookAction;
import net.sfte.htlibrary.ui.action.OverdueBookAction;
import net.sfte.htlibrary.ui.action.ReaderInfoAction;
import net.sfte.htlibrary.ui.action.ReaderRegisterAction;
import net.sfte.htlibrary.ui.action.RenewBookAction;
import net.sfte.htlibrary.ui.action.SwitchUserAction;
import net.sfte.htlibrary.ui.action.SystemHelpAction;
import net.sfte.htlibrary.ui.action.TodayAction;
import net.sfte.htlibrary.util.HtLibraryAuthorInfo;

/**
 * This is the main frame of htLibrary system.
 * 
 * @author wenwen
 */
public class MainFrame extends JFrame {
	private static final long serialVersionUID = 1L;

	public MainFrame() {
		setFrameAttributes();

		// set the menu
		menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		createSystemOptionMenu();
		createBookManagementMenu();
		createBookOperationMenu();
		createReaderManagementMenu();
		createSystemSearchMenu();
		createStatisticMenu();
		createHelpMenu();

		// the toolBar of htlibrary
		createToolBar();

		createMainOperationPane();

		// main panel of htlibrary
		createMainPanel();

		createPopupMenu();

		// the status bar of htlibrary
		add(statusBar, BorderLayout.SOUTH);
		JPopupMenu statusBarPopupMenu = new JPopupMenu();
		statusBarPopupMenu.add(new ChangeStatusBarAction(this, statusBar));
		statusBar.setComponentPopupMenu(statusBarPopupMenu);
		// Java bug 4966109. Java 6.0 fixed it.
		statusBar.addMouseListener(new MouseAdapter() {    });

		// call this when you clicked close button of the window
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				if (exitDialog == null)
					exitDialog = new ExitDialog();
				exitDialog.showDialog(MainFrame.this);
			}
		});
	}

	private void createPopupMenu() {
		JPopupMenu popupMenu = new JPopupMenu();
		createPopupMenuItem(popupMenu, new BorrowBookAction(this), "图书借阅",
				KeyEvent.VK_B);
		createPopupMenuItem(popupMenu, new GiveBackBookAction(this), "图书归还",
				KeyEvent.VK_G);
		createPopupMenuItem(popupMenu, new RenewBookAction(this), "图书续借",
				KeyEvent.VK_R);
		popupMenu.addSeparator();
		createPopupMenuItem(popupMenu, new ReaderInfoAction(this), "读者信息",
				KeyEvent.VK_I);
		createPopupMenuItem(popupMenu, new ReaderInfoAction(this), "读者登记");
		createPopupMenuItem(popupMenu, new ReaderInfoAction(this), "读者删除");
		popupMenu.addSeparator();
		createPopupMenuItem(popupMenu, new SystemHelpAction(this), "帮助信息",
				KeyEvent.VK_H);
		createPopupMenuItem(popupMenu, new ChangeImageAction(this,
				ChangeImageAction.mainPanel), "更换背景图片");
		mainPanel.setComponentPopupMenu(popupMenu);
		// Java bug 4966109. Java 6.0 fixed it.
		mainPanel.addMouseListener(new MouseAdapter() {    });
	}

	private void createPopupMenuItem(JPopupMenu popupMenu, Action action,
			String name, int keyCode) {
		JMenuItem menuItem = new JMenuItem(name);
		menuItem.setAccelerator(KeyStroke.getKeyStroke(keyCode,
				KeyEvent.CTRL_MASK));
		menuItem.addActionListener(action);
		popupMenu.add(menuItem);
	}

	private void createPopupMenuItem(JPopupMenu popupMenu, Action action,
			String name) {
		JMenuItem menuItem = new JMenuItem(name);
		menuItem.addActionListener(action);
		popupMenu.add(menuItem);
	}

	private void createMainPanel() {
		mainPanel = new MainPanel();
		add(mainPanel, BorderLayout.CENTER);
	}

	private void createMainOperationPane() {
		MainOperationPane mainOperationPane = new MainOperationPane(this);
		Box mainBox = mainOperationPane.getPane();
		add(mainBox, BorderLayout.WEST);
		mainBox.setBorder(BorderFactory.createEtchedBorder());
	}

	private void createToolBar() {
		JToolBar toolBar = new JToolBar();
		toolBar.setFloatable(false);
		add(toolBar, BorderLayout.NORTH);

		JButton adminButton = new JButton(new AdminSettingAction(this));
		setButton(adminButton);
		toolBar.add(adminButton);

		JButton changePasswordButton = new JButton(new ChangePasswordAction(
				this));
		setButton(changePasswordButton);
		toolBar.add(changePasswordButton);

		JButton hangupButton = new JButton(new HangupAction(this));
		setButton(hangupButton);
		toolBar.add(hangupButton);

		toolBar.addSeparator();

		JButton checkStorageButton = new JButton(new CheckStorageAction(this));
		setButton(checkStorageButton);
		toolBar.add(checkStorageButton);

		JButton todayButton = new JButton(new TodayAction(this));
		setButton(todayButton);
		toolBar.add(todayButton);

		JButton listOrderButton = new JButton(new ListOrderAction(this));
		setButton(listOrderButton);
		toolBar.add(listOrderButton);

		toolBar.addSeparator();

		JButton aboutButton = new JButton(new AboutAction(this));
		setButton(aboutButton);
		toolBar.add(aboutButton);

		JButton exitButton = new JButton(new ExitAction(this));
		setButton(exitButton);
		toolBar.add(exitButton);
	}

	private void createHelpMenu() {
		// Help Menu.
		JMenu helpMenu = new JMenu("系统帮助(H)");
		helpMenu.setMnemonic('H');
		menuBar.add(helpMenu);

		JMenuItem helpItem = new JMenuItem("使用帮助");
		helpItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,
				InputEvent.CTRL_MASK));
		helpItem.addActionListener(new SystemHelpAction(this));
		helpMenu.add(helpItem);

		helpMenu.addSeparator();

		JMenuItem aboutItem = new JMenuItem("关于");
		aboutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,
				InputEvent.CTRL_MASK));
		aboutItem.addActionListener(new AboutAction(this));
		helpMenu.add(aboutItem);
	}

	private void createStatisticMenu() {
		// statistic Menu.
		JMenu statisticMenu = new JMenu("统计排行(S)");
		statisticMenu.setMnemonic('S');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -