📄 mainframe.java
字号:
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 + -