📄 librarysystem.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.sql.*;
import java.util.*;
import java.text.*;
import java.io.*;
import java.awt.PrintJob.*; //For Printing the Records.
import javax.swing.plaf.metal.*; //For Change Look & Feel and Themes Options.
public class LibrarySystem extends JFrame implements ActionListener, ItemListener {
//Main Place on Form where All Child Forms will Shown.
private JDesktopPane desktop = new JDesktopPane ();
//For Program's MenuBar.
private JMenuBar bar;
//All the Main Menu of the Program.
private JMenu mnuFile, mnuEdit, mnuView, mnuOpt, mnuWin, mnuHelp;
//All the MenuItem Options of Program.
private JMenuItem newBook, newMember, printBook, printMember, printIssueBook, end; //File Menu Options.
private JMenuItem issueBook, returnBook, delBook, delMember, findBook, findMember; //Edit Menu Options.
private JMenuItem viewAllBook, viewAllMember, viewIssueBook; //View Menu Options.
private JMenuItem change, style, theme; //Option Menu Options.
private JMenuItem changePassword, makeUser, close, closeAll; //Window Menu Options.
private JMenuItem content, keyHelp, about; //Help Menu Options.
//PopupMenu of Program.
private JPopupMenu popMenu = new JPopupMenu ();
//MenuItems for PopupMenu of the Program.
private JMenuItem book, member, print, issue, bookReturn, find, view;
//For Program's ToolBar.
private JToolBar toolBar;
//For ToolBar's Button.
private JButton btnNewBook, btnNewMember, btnIssue, btnReturn, btnPrintIssue, btnDelBook,
btnDelMember, btnFindBook, btnFindMember, btnChange, btnHelp, btnKey;
//Panel For Main Form StatusBar where Program's Name & Welcome Message Display.
private JPanel statusBar = new JPanel ();
//Labels for Displaying Program's Name & saying Welcome to User on StatusBar.
private JLabel lbStatus; //For Program's Status.
private JLabel lbWelcome; //For Welcome Message.
//Getting the Current System Date.
private java.util.Date currDate = new java.util.Date (); //Creating Object.
private SimpleDateFormat sdf = new SimpleDateFormat ("dd MMMM yyyy", Locale.getDefault()); //Changing Format.
private String d = sdf.format (currDate); //Storing Date.
//Setting the Look & Feel Menu.
private String strings[] = {"1. Metal", "2. Motif", "3. Windows"};
private UIManager.LookAndFeelInfo looks[] = UIManager.getInstalledLookAndFeels ();
private ButtonGroup group = new ButtonGroup ();
private JRadioButtonMenuItem radio[] = new JRadioButtonMenuItem[strings.length];
private Connection con; //For Creating the Connection Between Program & Database.
private Statement st; //For Getting the Tables From Database.
private String userName; //For Getting the Current User's Name.
//Constructor of The LibrarySystem Program to Iniatilize all Variables of Program.
public LibrarySystem (String user, Connection conn) {
//Setting Program's Title.
super ("Muhammad Wasif's LibrarySystem.");
//Setting the Main Window of Program.
setIconImage (getToolkit().getImage ("Images/Home.gif")); //Setting the Program's Icon.
setSize (700, 550); //Setting Main Window Size.
//Setting the Location of Program on User's Computer Screen By Getting the Screen's Height & Width.
setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - getWidth()) / 2,
(Toolkit.getDefaultToolkit().getScreenSize().height - getHeight()) / 2);
//Closing Code of Main Window.
addWindowListener (new WindowAdapter () { //Attaching the WindowListener to Program.
public void windowClosing (WindowEvent we) { //Overriding the windowClosing Function.
quitApp (); //Call the Function to Perform the Closing Action.
}
}
);
//For Making the Dragging Speed of Internal Frames Faster.
desktop.putClientProperty ("JDesktopPane.dragMode", "outline");
//Creating the MenuBar For Displaying All the Menus of Program.
bar = new JMenuBar (); //Creating the MenuBar Object.
setJMenuBar (bar); //Setting Main Window MenuBar.
//Creating the Menus of Program & Assigning the Key too to Open them.
mnuFile = new JMenu ("File");
mnuFile.setMnemonic ((int)'F');
mnuEdit = new JMenu ("Edit");
mnuEdit.setMnemonic ((int)'E');
mnuView = new JMenu ("View");
mnuView.setMnemonic ((int)'V');
mnuOpt = new JMenu ("Options");
mnuOpt.setMnemonic ((int)'O');
mnuWin = new JMenu ("Window");
mnuWin.setMnemonic ((int)'W');
mnuHelp = new JMenu ("Help");
mnuHelp.setMnemonic ((int)'H');
//Creating All the MenuItems of Program.
//MenuItems for FileMenu.
newBook = new JMenuItem ("Add New Book", new ImageIcon ("Images/Open.gif"));
newBook.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_N, Event.CTRL_MASK));
newBook.setMnemonic ((int)'N');
newBook.addActionListener (this);
newMember = new JMenuItem ("Add New Member", new ImageIcon ("Images/New.gif"));
newMember.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_M, Event.CTRL_MASK));
newMember.setMnemonic ((int)'M');
newMember.addActionListener (this);
printBook = new JMenuItem ("Print Book Record", new ImageIcon ("Images/Cut.gif"));
printBook.setMnemonic ((int)'R');
printBook.addActionListener (this);
printMember = new JMenuItem ("Print Member Record", new ImageIcon ("Images/add.gif"));
printMember.setMnemonic ((int)'T');
printMember.addActionListener (this);
printIssueBook = new JMenuItem ("Print Issue Book Record", new ImageIcon ("Images/copy.gif"));
printIssueBook.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_P, Event.CTRL_MASK));
printIssueBook.setMnemonic ((int)'P');
printIssueBook.addActionListener (this);
end = new JMenuItem ("Quit LibrarySystem ?", new ImageIcon ("Images/export.gif"));
end.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_Q, Event.CTRL_MASK));
end.setMnemonic ((int)'Q');
end.addActionListener (this);
//MenuItems for EditMenu.
issueBook = new JMenuItem ("Issue Book");
issueBook.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_I, Event.CTRL_MASK));
issueBook.setMnemonic ((int)'I');
issueBook.addActionListener (this);
returnBook = new JMenuItem ("Return Book");
returnBook.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_R, Event.CTRL_MASK));
returnBook.setMnemonic ((int)'R');
returnBook.addActionListener (this);
delBook = new JMenuItem ("Delete Book", new ImageIcon ("Images/Delete.gif"));
delBook.setMnemonic ((int)'D');
delBook.addActionListener (this);
delMember = new JMenuItem ("Delete Member");
delMember.setMnemonic ((int)'D');
delMember.addActionListener (this);
findBook = new JMenuItem ("Search Book");
findBook.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_F, Event.CTRL_MASK));
findBook.setMnemonic ((int)'F');
findBook.addActionListener (this);
findMember = new JMenuItem ("Search Member", new ImageIcon ("Images/find.gif"));
findMember.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_S, Event.CTRL_MASK));
findMember.setMnemonic ((int)'S');
findMember.addActionListener (this);
//MenuItems for ViewMenu.
viewAllBook = new JMenuItem ("View All Books", new ImageIcon ("Images/Fruit.gif"));
viewAllBook.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_A, Event.CTRL_MASK));
viewAllBook.setMnemonic ((int)'A');
viewAllBook.addActionListener (this);
viewAllMember = new JMenuItem ("View All Members", new ImageIcon ("Images/Refresh.gif"));
viewAllMember.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_V, Event.CTRL_MASK));
viewAllMember.setMnemonic ((int)'V');
viewAllMember.addActionListener (this);
viewIssueBook = new JMenuItem ("View Issued Books");
viewIssueBook.setMnemonic ((int)'I');
viewIssueBook.addActionListener (this);
//MenuItems for OptionMenu.
change = new JMenuItem ("Change Background Color");
change.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_B, Event.CTRL_MASK));
change.setMnemonic ((int)'C');
change.addActionListener (this);
//StyleMenu For Changing the Program's Layout.
style = new JMenu ("Change Layout Style");
style.setMnemonic ((int)'S');
for( int i = 0; i < radio.length ; i++ ) { //Creating the subMenus of Style Menu.
radio[i] = new JRadioButtonMenuItem (strings[i]); //Build an Array of Layouts to Apply.
radio[i].setSelected (true);
radio[i].addItemListener (this); //Setting their Actions.
group.add (radio[i]); //Making them Grouped.
style.add (radio[i]); //Adding to Style MenuOption.
}
//SubMenu of ThemeMenu For Applying different Themes to Program By Building an Array of Themes to Apply.
//Attaching the PropertyChangeListener to Program For Applying the Themes.
UIManager.addPropertyChangeListener (new UISwitchListener ((JComponent)getRootPane()));
MetalTheme[] themes = { new DefaultMetalTheme (), new BlueTheme (), new BrownTheme (), new GreenTheme (),
new ChocTheme (), new OrangeTheme (), new PinkTheme (), new RedTheme (),
new WaterTheme (), new YellowTheme () }; //Buliding the Array of Themes Objects.
theme = new MetalThemeMenu ("Apply Theme", themes); //Putting the Themes in ThemeMenu.
theme.setMnemonic ((int)'T');
//MenuItems for WindowMenu.
changePassword = new JMenuItem ("Change Your Password");
changePassword.setMnemonic ((int)'P');
changePassword.addActionListener (this);
makeUser = new JMenuItem ("Create New User");
makeUser.setMnemonic ((int)'N');
makeUser.addActionListener (this);
close = new JMenuItem ("Close Active Window");
close.setMnemonic ((int)'C');
close.addActionListener (this);
closeAll = new JMenuItem ("Close All Windows...");
closeAll.setMnemonic ((int)'A');
closeAll.addActionListener (this);
//MenuItems for HelpMenu.
content = new JMenuItem ("Help Contents", new ImageIcon ("Images/Glass.gif"));
content.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_H, Event.CTRL_MASK));
content.setMnemonic ((int)'H');
content.addActionListener (this);
keyHelp = new JMenuItem ("Shortcut Keys...");
keyHelp.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_K, Event.CTRL_MASK));
keyHelp.setMnemonic ((int)'K');
keyHelp.addActionListener (this);
about = new JMenuItem ("About LibrarySystem", new ImageIcon ("Images/Windows.gif"));
about.setAccelerator (KeyStroke.getKeyStroke(KeyEvent.VK_L, Event.CTRL_MASK));
about.setMnemonic ((int)'L');
about.addActionListener (this);
//Adding All MenuItems to their Menu.
//File Menu Items.
mnuFile.add (newBook);
mnuFile.add (newMember);
mnuFile.addSeparator ();
mnuFile.add (printBook);
mnuFile.add (printMember);
mnuFile.add (printIssueBook);
mnuFile.addSeparator ();
mnuFile.add (end);
//Edit Menu Items.
mnuEdit.add (issueBook);
mnuEdit.add (returnBook);
mnuEdit.addSeparator ();
mnuEdit.add (delBook);
mnuEdit.add (delMember);
mnuEdit.addSeparator ();
mnuEdit.add (findBook);
mnuEdit.add (findMember);
//View Menu Items.
mnuView.add (viewAllBook);
mnuView.addSeparator ();
mnuView.add (viewAllMember);
mnuView.addSeparator ();
mnuView.add (viewIssueBook);
//Options Menu Items.
mnuOpt.add (change);
mnuOpt.addSeparator ();
mnuOpt.add (style);
mnuOpt.addSeparator ();
mnuOpt.add (theme);
//Window Menu Items.
mnuWin.add (changePassword);
mnuWin.add (makeUser);
mnuWin.addSeparator ();
mnuWin.add (close);
mnuWin.add (closeAll);
//Help Menu Items.
mnuHelp.add (content);
mnuHelp.addSeparator ();
mnuHelp.add (keyHelp);
mnuHelp.addSeparator ();
mnuHelp.add (about);
//Adding All Menus to MenuBar.
bar.add (mnuFile);
bar.add (mnuEdit);
bar.add (mnuView);
bar.add (mnuOpt);
bar.add (mnuWin);
bar.add (mnuHelp);
//MenuItems for PopupMenu.
book = new JMenuItem ("Add New Book", new ImageIcon ("Images/Open.gif"));
book.addActionListener (this);
member = new JMenuItem ("Add New Member", new ImageIcon ("Images/New.gif"));
member.addActionListener (this);
print = new JMenuItem ("Print Book Record", new ImageIcon ("Images/Cut.gif"));
print.addActionListener (this);
issue = new JMenuItem ("Issue Book");
issue.addActionListener (this);
bookReturn = new JMenuItem ("Return Book");
bookReturn.addActionListener (this);
find = new JMenuItem ("Search Book", new ImageIcon ("Images/Find.gif"));
find.addActionListener (this);
view = new JMenuItem ("View All Members", new ImageIcon ("Images/refresh.gif"));
view.addActionListener (this);
//Adding MenuItems to PopupMenu.
popMenu.add (book);
popMenu.add (member);
popMenu.add (print);
popMenu.add (issue);
popMenu.add (bookReturn);
popMenu.add (find);
popMenu.add (view);
//Following Procedure display the PopupMenu of Program Whenever User Right Click on Program By Mouse.
addMouseListener (new MouseAdapter () {
public void mousePressed (MouseEvent me) { checkMouseTrigger (me); }
public void mouseReleased (MouseEvent me) { checkMouseTrigger (me); }
private void checkMouseTrigger (MouseEvent me) {
if (me.isPopupTrigger ())
popMenu.show (me.getComponent (), me.getX (), me.getY ());
}
}
);
//Creating the ToolBar's Buttons of Program.
btnNewBook = new JButton (new ImageIcon ("Images/NotePad.gif"));
btnNewBook.setToolTipText ("Add New Book");
btnNewBook.addActionListener (this);
btnNewMember = new JButton (new ImageIcon ("Images/Info.gif"));
btnNewMember.setToolTipText ("Add New Member");
btnNewMember.addActionListener (this);
btnIssue = new JButton (new ImageIcon ("Images/Film.gif"));
btnIssue.setToolTipText ("Issue Book");
btnIssue.addActionListener (this);
btnReturn = new JButton (new ImageIcon ("Images/Backup.gif"));
btnReturn.setToolTipText ("Return Book");
btnReturn.addActionListener (this);
btnPrintIssue = new JButton (new ImageIcon ("Images/Hp.gif"));
btnPrintIssue.setToolTipText ("Print Issue Book");
btnPrintIssue.addActionListener (this);
btnDelBook = new JButton (new ImageIcon ("Images/Recycle.gif"));
btnDelBook.setToolTipText ("Delete Book");
btnDelBook.addActionListener (this);
btnDelMember = new JButton (new ImageIcon ("Images/Basket.gif"));
btnDelMember.setToolTipText ("Delete Member");
btnDelMember.addActionListener (this);
btnFindBook = new JButton (new ImageIcon ("Images/Mirror.gif"));
btnFindBook.setToolTipText ("Search Book");
btnFindBook.addActionListener (this);
btnFindMember = new JButton (new ImageIcon ("Images/Search.gif"));
btnFindMember.setToolTipText ("Search Member");
btnFindMember.addActionListener (this);
btnChange = new JButton (new ImageIcon ("Images/Key.gif"));
btnChange.setToolTipText ("Change Your Password");
btnChange.addActionListener (this);
btnHelp = new JButton (new ImageIcon ("Images/Help.gif"));
btnHelp.setToolTipText ("Help on LibrarySystem");
btnHelp.addActionListener (this);
btnKey = new JButton (new ImageIcon ("Images/Keys.gif"));
btnKey.setToolTipText ("Shortcut Keys of LibrarySystem");
btnKey.addActionListener (this);
//Creating the ToolBar of Program.
toolBar = new JToolBar ();
toolBar.add (btnNewBook);
toolBar.add (btnNewMember);
toolBar.addSeparator ();
toolBar.add (btnIssue);
toolBar.add (btnReturn);
toolBar.addSeparator ();
toolBar.add (btnPrintIssue);
toolBar.addSeparator ();
toolBar.add (btnDelBook);
toolBar.add (btnDelMember);
toolBar.addSeparator ();
toolBar.add (btnFindBook);
toolBar.add (btnFindMember);
toolBar.addSeparator ();
toolBar.add (btnChange);
toolBar.addSeparator ();
toolBar.add (btnHelp);
toolBar.add (btnKey);
//Getting the Current User.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -